Commit Graph

1311 Commits

Author SHA1 Message Date
brett koonce
7f0f6bbec2 rm minor warning 2020-04-09 10:08:10 -07:00
eeckstein
ecf1e4e370 Merge pull request #30822 from PatrickPijnappel/premultiply-case-conversion-benchmark
[benchmark] Premultiply N for case conversion benchmark
2020-04-08 08:26:55 +02:00
Patrick Pijnappel
6196a8a045 [benchmark] Rename premultiplied tests 2020-04-07 19:04:45 +10:00
Patrick Pijnappel
fce674efcb [benchmark] Premultiply N for case conversion benchmark 2020-04-06 15:48:12 +10:00
Patrick Pijnappel
4863d0448e [benchmark] Change selection of non-skipped ParseInt benchmarks 2020-04-06 13:22:04 +10:00
Michael Ilseman
c0960d3868 Merge pull request #30798 from milseman/custom_bench_collection
[benchmark] Disable inlining of wCSIA in benchmark
2020-04-05 16:39:22 -07:00
Vedant Kumar
54a6be9d65 benchmark: Add SWIFT_BENCHMARK_UNOPTIMIZED_DRIVER option (#30794)
Add an option to allow compiling the benchmark test utilities and driver
at -Onone. This is needed because lldb does not support stepping through
optimized swift code.
2020-04-03 14:37:55 -07:00
Michael Ilseman
83e5cb5bcf [benchmark] Disable inlining of wCSIA in benchmark
... which gives us a better feel for when contiguity is unknown at the
call site.
2020-04-03 14:06:12 -07:00
Michael Ilseman
53ba2044f0 Merge pull request #30762 from milseman/custom_bench_collection
[benchmark] Add custom-collection String(decoding:as:)
2020-04-03 13:59:40 -07:00
Mishal Shah
df53c20a87 Merge pull request #30085 from broadwaylamb/benchmark-python-3
Support Python 3 in the benchmark suite
2020-04-03 13:06:53 -07:00
Vedant Kumar
829f2588b3 benchmark: Build drivers with N_AST symtab entries (for debugging) (#30777)
On Darwin, we pass the *.swiftmodule paths transitively referenced by
the driver executable to ld64. ld64 inserts N_AST references to these
modules into the program, for later use by lldb.

This change should let us exercise much more lldb functionality via
`stepper` testing.
2020-04-02 16:12:05 -07:00
Michael Ilseman
e3cbb41a67 [benchmark] Add custom-collection String(decoding:as:)
Add a custom collection String(decoding:as:) benchmark for contiguous
and non-contiguous collections (overriding
withContiguousStorageIfAvailable)
2020-04-01 11:29:03 -07:00
Mishal Shah
95dbb9b498 Rename module.map to module.modulemap to support SwiftPM 2020-03-24 14:34:13 -07:00
Kuba Mracek
45ba5cec05 [arm64e] Add arm64e support into Swift's build system 2020-02-27 16:08:15 -08:00
Sergej Jaskiewicz
cce9e81f0b Support Python 3 in the benchmark suite 2020-02-28 01:45:35 +03:00
Patrick Pijnappel
965f7e2b4a Merge pull request #29988 from PatrickPijnappel/expand-parse-int-benchmarks
[benchmark] Expand ParseInt benchmarks
2020-02-26 17:29:39 +11:00
swift-ci
573e55263c Merge pull request #30049 from gottesmm/pr-84af955fa93e4646656fdbeff3a2df1e1a5399ea 2020-02-25 18:21:35 -08:00
Michael Gottesman
583b2b00e5 [benchmark] Fix names 2020-02-25 13:53:20 -08:00
Michael Gottesman
66ece215c1 Add a version of Prims that uses Unmanaged._withUnsafeGuaranteedRef. 2020-02-25 12:33:32 -08:00
Michael Gottesman
7c5f4d8960 Add variants of PrimsNonStrongRef that use a closure access function rather than an accessor to get the underlying value.
I am going to be adding a variant of this that uses
Unmanaged._withUnsafeGuaranteedRef(...). To truly make it fair, I am
adding variants that also use an access ref entrypoint.
2020-02-25 12:33:32 -08:00
Michael Gottesman
561c76d5bb Add version of non strong ref prims that uses a closure based approach to access the value.
I am going to add a version of this that tests that Unmanaged._withUGR
gives us expected performance. So we really need both versions of all of
the four current benchmarks to make this truly fair.
2020-02-25 12:33:32 -08:00
Michael Gottesman
25233e53fd Fix small bit of incorrect code that was hiding behind an #if false. 2020-02-25 12:33:32 -08:00
Karoy Lorentey
4804425e45 [benchmark] Add regular (slow) Unmanaged variant 2020-02-25 11:25:49 -08:00
Karoy Lorentey
2e95ab90bb [benchmark] Actually deallocate nodes 🤭 2020-02-25 11:09:40 -08:00
Karoy Lorentey
3f83a233a2 [benchmark] Adjust scaling 2020-02-24 23:09:47 -08:00
Karoy Lorentey
18364013b5 [benchmark] Add RandomTree benchmark 2020-02-24 21:53:40 -08:00
Patrick Pijnappel
70ffa90083 [benchmark] Pick ParseInt skipped tests more deliberately 2020-02-22 23:23:29 +11:00
Patrick Pijnappel
c73b4ee99d [benchmark] Make ParseInt not use gyb 2020-02-22 10:07:24 +11:00
Patrick Pijnappel
973c0fdcf0 Add .skip to non-core tests 2020-02-21 22:51:51 +11:00
Patrick Pijnappel
0c60e66643 [benchmark] Fix ParseInt memory variability 2020-02-21 19:31:17 +11:00
Patrick Pijnappel
ccf38e3dc2 [benchmark] Increase ParseInt small values to ...9999 2020-02-21 19:17:20 +11:00
Patrick Pijnappel
0dae2cb9a2 [benchmark] Expand ParseInt benchmarks and use gyb 2020-02-21 18:31:41 +11:00
Andrew Trick
14862908ef Merge pull request #28043 from zoecarver/fix/substitution-map-composition
Devirtualize calls to protocol composition type methods
2020-02-18 09:30:07 -08:00
Ross Bayer
b1961745e0 [Python: black] Reformatted the benchmark Python sources using utils/python_format.py. 2020-02-08 15:32:44 -08:00
zoecarver
464b585c9c Update benchmark to be more similar to other devirtualization benchmarks 2020-02-06 14:14:51 -08:00
Vedant Kumar
609c84b600 benchmark: Make building with debug info the default (#29669) 2020-02-06 11:03:20 -08:00
zoecarver
134792947e Merge branch 'master' into fix/substitution-map-composition 2020-02-04 16:18:03 -08:00
zoecarver
ea821b1adb Use blackHole to make sure benchmark isn't optimized away 2020-02-03 16:48:01 -08:00
zoecarver
dbadd99b62 Add benchmark for devirtualization performance measurements 2020-02-03 15:20:59 -08:00
Michael Gottesman
2840a7609d When gathering counters, check for instability and FAIL otherwise.
The way we already gather numbers for this test is that we run two runs of
`Benchmark_O $TEST` with num-samples=2, iters={2,3}. Under the assumption that
the only difference in counter numbers can be caused by that extra iteration,
subtracting the group of counts for 2,3 gives us the number of counts in that
iteration.

In certain cases, I have found that a small subset of the benchmarks are
producing weird output and I haven't had the time to look into why. That being
said, I do know what these weird results look like, so in this commit we do some
extra validation work to see if we need to fail a test due to instability.

The specific validation is that:

1. We perform another run with num-samples=2, iter=5 and subtract the iter=3
counts from that. Under the assumption that overall work should increase
linearly with iteration size in our benchmarks, we check if the counts are
actual 2x.

2. If either `result[iter=3] - result[iter=2]` or `result[iter=5] -
result[iter=3]` is negative. All of the counters we gather should never decrease
with iteration count.
2020-01-15 14:41:21 -08:00
Michael Gottesman
461f17e5b7 Change -csv flag to be --emit-csv. 2020-01-15 14:41:21 -08:00
Michael Gottesman
35aa0405d1 Pattern match test names, not numbers to capture test names from Benchmark_O --list
This makes the output of the test more readable.
2020-01-15 14:41:21 -08:00
Michael Gottesman
676411f0b0 Have dtrace aggregate rr opts and start tracking {retain,release}_n.
Otherwise, one can get results that seem to imply more rr traffic when in
reality, one was not tracking {retain,release}_n that as a result of better
optimization become just simple retain, release.
2020-01-15 14:39:55 -08:00
Michael Gottesman
6fff30c122 [benchmark-dtrace] Enabling multiprocessing option to speed up gathering data. 2020-01-08 16:06:56 -08:00
Michael Gottesman
c7c2e6e17b [benchmark-dtrace] Fix the amount of samples taken along side the number of iters.
Otherwise, the output is not stable.
2020-01-08 16:06:56 -08:00
Michael Gottesman
d48cdd9cad [benchmark-dtrace] Set SWIFT_DETERMINISTIC_HASHING=1 before calling subjobs.
This prevents a bunch of instability in the retain, release numbers. I am still
getting some of it, but this helps a lot.
2020-01-08 16:06:56 -08:00
Hamish Knight
bc62c141c0 Eliminated "dangling pointer" warnings at DriverUtils (#28648)
Eliminated "dangling pointer" warnings at DriverUtils
2019-12-16 12:54:21 -08:00
Luciano Almeida
392baefc47 [stdlib][Qol] SR-11295 Removing stdlib unnecessary coercions (#27165)
* Removing unnecessary casts from stdlib

* Minor adjustments

* [stdlib][qol] Clean up error variable assign NSError

* Removing unnecessary coercions after removing DeclRefExpr restriction.
2019-12-11 07:30:25 -08:00
Mao ZiJun
d1259cec50 eliminated "dangling pointer" warnings 2019-12-09 17:41:20 +09:00
Michael Gottesman
33684ba508 Add support for compiling ObjectiveCNoBridgingStubs to the swiftpm benchmark build.
We did not have access to something like SwiftSettings.unsafeFlags to
pass -disable-swift-bridge-attr to swift.
2019-11-26 10:00:08 -08:00