Commit Graph

1638 Commits

Author SHA1 Message Date
Keita Nonaka
cecbb1491e minor fixes 2019-05-10 14:43:42 -04:00
Patrick Pijnappel
7c49272324 Merge pull request #24476 from PatrickPijnappel/add-parsing-benchmark
[benchmark] Add integer parsing benchmarks
2019-05-09 08:59:15 +10:00
Keita Nonaka
b630380c0a switch var to let in benchmark directory (#24011)
* switch var to let in benchmark directory

* Revert "switch var to let in benchmark directory"

This reverts commit 6133471e76.

* change gyb files to fix error
2019-05-07 19:16:25 -07:00
Keita Nonaka
b1a96e863d Variants for Set Sequence Methods 2019-05-07 18:29:24 -04:00
Pavol Vaskovic
cdc47f682f [benchmark] Fix Existential.Array.Mutating SO
Mask the setup overhead from copying of existential array in `Existential.Array.Mutating` by increasing the workload (5x). This way the overhead of copying is less than 5%.

Remove the misguided attempt at solving this problem with `grabArray` method - there is no way to avoid this overhead because every sample should start from a fresh copy.
2019-05-06 08:04:18 +02:00
Patrick Pijnappel
aa39122ad5 [benchmark] Make small int parsing take >20µs 2019-05-05 09:34:25 +10:00
Patrick Pijnappel
414d860ceb [benchmark] Split ParseInt into small/large & check results 2019-05-04 09:17:43 +10:00
Patrick Pijnappel
b4654bf660 [benchmark] Use dot in integer parsing benchmark names 2019-05-04 09:17:42 +10:00
Patrick Pijnappel
150bcb0503 [benchmark] Add integer parsing benchmarks 2019-05-04 09:17:42 +10:00
Pavol Vaskovic
63aa6fbd5b Merge pull request #24367 from palimondo/breadcrumbs-prng-swap
[benchmark] Breadcrumbs: swap PRNG implementations
2019-04-30 09:23:40 +02:00
David Smith
a1384d9a18 Add a benchmark for bridging String(contentsOfFile:...), now with availability guards for watchOS and tvOS 2019-04-29 14:28:09 -07:00
Pavol Vaskovic
28adf81af1 [benchmark] Breadcrumbs: swap PRNG implementations
Replaced local LCRNG implementation with SplitMix64 from TestUtils.
2019-04-29 20:06:58 +02:00
Pavol Vaskovic
5032d33d07 [benchmark] BucketSort gardening
Increased workload to sorting of 10k items.
Used SplitMix64 PRNG for randomness.
Adjusted formatting and naming to match Swift conventions.
Adjusted documentation.
2019-04-29 19:42:02 +02:00
Pavol Vaskovic
ea80003b0c Merge pull request #24307 from palimondo/legacy-factor-doc
[benchmark] Documentation for legacyFactor
2019-04-29 08:02:53 +02:00
Pavol Vaskovic
6ca706eb1d Merge pull request #24357 from palimondo/prng-splitmix64
[benchmark] Add SplitMix64 PRNG
2019-04-29 06:53:21 +02:00
Pavol Vaskovic
d2a47db71a [benchmark] Add SplitMix64 PRNG
Very fast pseudorandom number generator with 64 bits of state, conforming to `RandomNumberGenerator` protocol, passing BigCrush.
2019-04-28 19:23:42 +02:00
Pavol Vaskovic
e779e06ba2 [benchmark] Documentation for legacyFactor 2019-04-28 18:23:01 +02:00
eeckstein
2c77f5c8c8 Revert "Add a benchmark for bridging String(contentsOfFile:...)" 2019-04-27 12:37:00 -07:00
swift-ci
c09f84d42c Merge pull request #24326 from Catfish-Man/string-from-file-benchmarks 2019-04-26 19:06:56 -07:00
David Smith
b3dd978d66 Add a benchmark for bridging String(contentsOfFile:...) 2019-04-26 16:04:36 -07:00
Raj Barik
34fbbcc842 Merge pull request #24206 from rajbarik/raj-bench
Performance Benchmarking of ExistentialSpecializer
2019-04-26 08:55:29 -07:00
Michael Ilseman
2022b5c566 Merge pull request #24210 from troughton/floating-point-parsing-benchmark
[benchmark] Add a benchmark for floating point parsing performance
2019-04-25 15:13:38 -07:00
Raj Barik
2f32778de4 Performance Benchmarking of ExistentialSpecializer 2019-04-25 10:38:36 -07:00
Thomas Roughton
0d647a57e7 Float to String benchmark: Use better workloads. 2019-04-25 15:20:18 +12:00
Pavol Vaskovic
42eb4f8bf3 Clarified variant casing
Adjusted to explicitly call out that benchmark variants should also be UpperCase. Only methods should be lowerCase.
2019-04-24 08:41:16 +02:00
Thomas Roughton
4b50c3ef3e [benchmark] Add a benchmark for floating point parsing performance 2019-04-24 13:31:23 +12:00
Michael Ilseman
32a2031a19 [benchmark] View variants for CSVParsing
Generalize CSVParsing so that it can be ran across all of String's
views, and add corresponding benchmarks.

Note: This does change the profile of the original benchmark, which
was an odd mixture of String and UTF16View.
2019-04-22 15:37:53 -07:00
Slava Pestov
acd6c09b6b Revert "Performance Benchmarking of ExistentialSpecializer" 2019-04-17 13:31:32 -04:00
Raj Barik
cfc840920b Merge pull request #24065 from rajbarik/raj-es-perf-bench
Performance Benchmarking of ExistentialSpecializer
2019-04-16 22:33:26 -07:00
Keita Nonaka
09da304a71 add benchmark of set isStrictSubset (#23690)
* add benchmark of set isStrictSubset

* fix SetIsStrictSubsetBox

* bug fixes

* change benchmark names to follow naming convention

* fix benchmark names
2019-04-16 20:34:28 -07:00
Raj Barik
78a0fe16be Performance Benchmarking of ExistentialSpecializer 2019-04-16 17:16:58 -07:00
Michael Gottesman
c86c1763c6 [benchmarks] Add support to the build-script swiftpm benchmarks for building the benchmarks in -Osize. 2019-04-11 10:10:38 -07:00
swift-ci
952ffa6dcd Merge pull request #23943 from gottesmm/pr-5f0e58774d6cdc3eea4498b84255f8293e0bd665 2019-04-10 23:50:55 -07:00
Michael Gottesman
53ff97428a [benchmarks] Change the build_script_helper to use subdirectories for each build and install final binaries in a toplevel ./bin build directory.
This will let me:

1. Add -Osize support easily.
2. Put all of the binaries in the same directory so that Benchmark_Driver can
   work with them via the -tools argument.
2019-04-10 22:18:50 -07:00
Michael Gottesman
115f7a43e0 Move build_script_helper from ./benchmarks/utils => ./benchmarks/scripts. 2019-04-10 22:18:50 -07:00
Andrew Trick
b127216946 Benchmark cmake: Added SWIFT_BENCHMARK_USE_OS_LIBRARIES
Cleanup and document the configuration of the library path and rpath.

With SWIFT_BENCHMARK_USE_OS_LIBRARIES, it's now possible to directly
build benchmarks for a target device and run those benchmarks on the
device without building or installing Swift.

It's also possible now to specify an absolute SWIFT_LIBRARY_PATH to be
used as an rpath so installation can be skipped.
2019-04-10 09:31:02 -07:00
Michael Gottesman
df539948d5 [benchmarks] Add support for building the benchmarks via build-script against the just created toolchain.
Now one can on Darwin/Linux build the benchmarks via swiftpm from build-script by passing in:

```
build-script $NORMAL_ARGS --install-swift --install-swiftpm --install-llbuild --toolchain-benchmarks --swiftpm --llbuild
```

This is done using the infrastructure that BenL added for sourcekit-lsp.
2019-04-07 13:25:31 -07:00
Michael Gottesman
f854547c55 [ownership] Enable ownership verification by default.
I also removed the -verify-sil-ownership flag in favor of a disable flag
-disable-sil-ownership-verifier. I used this on only two tests that still need
work to get them to pass with ownership, but whose problems are well understood,
small corner cases. I am going to fix them in follow on commits. I detail them
below:

1. SILOptimizer/definite_init_inout_super_init.swift. This is a test case where
DI is supposed to error. The only problem is that we crash before we error since
the code emitting by SILGen to trigger this error does not pass ownership
invariants. I have spoken with JoeG about this and he suggested that I fix this
earlier in the compiler. Since we do not run the ownership verifier without
asserts enabled, this should not affect compiler users. Given that it has
triggered DI errors previously I think it is safe to disable ownership here.

2. PrintAsObjC/extensions.swift. In this case, the signature generated by type
lowering for one of the thunks here uses an unsafe +0 return value instead of
doing an autorelease return. The ownership checker rightly flags this leak. This
is going to require either an AST level change or a change to TypeLowering. I
think it is safe to turn this off since it is such a corner case that it was
found by a test that has nothing to do with it.

rdar://43398898
2019-03-25 00:11:52 -07:00
David Smith
d2a59e0edf Add new benchmarks for NSString bridging to cover non-tagged cases 2019-03-21 14:17:39 -07:00
Michael Gottesman
c49fca5522 Merge pull request #23382 from gottesmm/pr-70738274d737cc40c6973417c97dfc24b81133c7
[ownership] Rename enable-sil-ownership => verify-sil-ownership.
2019-03-18 08:44:22 -07:00
Ben Cohen
9250e9fb5b Merge pull request #23294 from PatrickPijnappel/range-overlaps-performance
[test] Add Range Overlaps Benchmark
2019-03-18 07:51:05 -07:00
Michael Gottesman
0dfaa19f9f [ownership] Rename enable-sil-ownership => verify-sil-ownership.
I have been meaning to do this change for a minute, but kept on putting it off.
This describes what is actually happening and is a better name for the option.
2019-03-18 01:31:44 -07:00
Michael Gottesman
7788567444 [benchmark] Compile the benchmark suite with ownership verification enabled. 2019-03-17 23:33:48 -07:00
Patrick Pijnappel
143f25345d [test] Reduce range overlaps benchmark work per N 2019-03-18 14:39:37 +11:00
Patrick Pijnappel
06a2e6d5d2 [test] Add Range overlaps benchmark 2019-03-14 20:26:28 +11:00
Saleem Abdulrasool
d86ead48d4 build: specify vendor for Darwin benchmarks
The build was not specifying the vendor when building the Darwin
benchmarks.  Parts of the SDK rely on the vendor macro (`__APPLE__`) to
be defined which requires that the vendor is specified properly.  Ensure
that we do so.
2019-03-12 17:45:54 -07:00
Pavol Vaskovic
539f2cdcdf [benchmark] Remove DoubleWidthDivision (dead code) 2019-03-01 20:40:18 +01:00
Pavol Vaskovic
b2776f33ce [benchmark] [Equal,Less]Substring setup overhead 2019-03-01 17:56:12 +01:00
Pavol Vaskovic
b7f6813816 [benchmark] ArrayInClass LF + DistinctClassField… 2019-02-28 22:21:02 +01:00
Pavol Vaskovic
6195afcda0 [benchmark] DictionaryOfAnyHashableStrings SO LF
Adjust workload, apply legacyFactor and fix the extra loop of the workload causing the measurable setup overhad.
2019-02-28 22:13:49 +01:00