Skip to content

[Exclusivity] Change the exclusivity checks inline heuristic threshold #21648

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 5, 2019

Conversation

shajrawi
Copy link

@shajrawi shajrawi commented Jan 4, 2019

radar rdar://problem/46783598

This PR reduces the aggressiveness of the exclusivity checks inline heuristic: based on local testing, I believe I found a sweet-spot between maintaining -O performance and making sure we do not increase the code size (too much) - will use this PR to test on the bots before committing.

@shajrawi
Copy link
Author

shajrawi commented Jan 4, 2019

@swift-ci Please smoke test

@shajrawi
Copy link
Author

shajrawi commented Jan 4, 2019

@swift-ci Please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Jan 4, 2019

Build comment file:

Performance: -O

TEST OLD NEW DELTA RATIO
Improvement
Dictionary4OfObjects 316 268 -15.2% 1.18x

Code size: -O

TEST OLD NEW DELTA RATIO
Regression
DictTest4Legacy.o 25540 27569 +7.9% 0.93x
DictTest4.o 24034 25887 +7.7% 0.93x
Improvement
Hash.o 34025 28585 -16.0% 1.19x
DictionaryRemove.o 17125 15461 -9.7% 1.11x
DictionarySwap.o 26414 24798 -6.1% 1.07x
DictTest2.o 15547 14747 -5.1% 1.05x
RGBHistogram.o 27331 26054 -4.7% 1.05x
SetTests.o 74711 71591 -4.2% 1.04x
DictTest.o 19254 18454 -4.2% 1.04x
DictTest3.o 22507 21707 -3.6% 1.04x
DriverUtils.o 144693 142621 -1.4% 1.01x

Performance: -Osize

TEST OLD NEW DELTA RATIO
Regression
ObjectiveCBridgeFromNSArrayAnyObjectForced 3919 4364 +11.4% 0.90x

Code size: -Osize

TEST OLD NEW DELTA RATIO
Regression
DictionarySwap.o 22166 26422 +19.2% 0.84x
RGBHistogram.o 23974 24582 +2.5% 0.98x
DictionaryGroup.o 14159 14367 +1.5% 0.99x
Improvement
DictTest4.o 16894 14958 -11.5% 1.13x
SetTests.o 66743 61335 -8.1% 1.09x
DictionarySubscriptDefault.o 19777 18753 -5.2% 1.05x
How to read the data The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.

If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 8-Core Intel Xeon E5
  Processor Speed: 3 GHz
  Number of Processors: 1
  Total Number of Cores: 8
  L2 Cache (per Core): 256 KB
  L3 Cache: 25 MB
  Memory: 64 GB
--------------

@shajrawi shajrawi merged commit 11f0648 into swiftlang:master Jan 5, 2019
@shajrawi shajrawi deleted the inline_excl branch January 5, 2019 00:14
shajrawi pushed a commit to shajrawi/swift that referenced this pull request Jan 11, 2019
[Exclusivity] Change the exclusivity checks inline heuristic threshold
eeckstein added a commit that referenced this pull request Jan 11, 2019
Merge pull request #21648 from shajrawi/inline_excl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants