-
Notifications
You must be signed in to change notification settings - Fork 10.5k
SIL: Don't drop generic signatures where all parameters are concrete #23291
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
SIL: Don't drop generic signatures where all parameters are concrete #23291
Conversation
@jrose-apple I realized this changes optimizer behavior; if the benchmark results are affected we'll have to tweak this a little bit. |
@swift-ci Please smoke test |
@swift-ci Please test source compatibility |
@swift-ci Please benchmark |
Performance: -O
Performance: -Osize
Performance: -Onone
How to read the dataThe 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 Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
6185498
to
d7a0425
Compare
Ok, this should now fix the optimizer crash. If it doesn't do it, I'll have to do a spot fix and postpone this for now since it's already more painful than I imagined. |
@swift-ci Please smoke test |
@swift-ci Please test source compatibility |
2 similar comments
@swift-ci Please test source compatibility |
@swift-ci Please test source compatibility |
@swift-ci Please benchmark |
Performance: -O
Performance: -Osize
Performance: -Onone
How to read the dataThe 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 Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
Is it just that we're considering these less profitable to inline or something? |
@jrose-apple We don't inline generic functions at all actually |
@slavapestov this is not true. I think we do it in the standard library. This is a piece of work that we did not have enough manpower to finish when @swiftix left. I think the problem was that we did not find a good heuristic yet that didn't create too much code-size increase. But for the stdlib it wasn't so bad and we saw nice perf increase. |
@slavapestov are you picking this for 5.1? If so, I don't need to pick my fix. |
No description provided.