Skip to content
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

Switch to the new LLVM pass manager #13818

Merged
merged 7 commits into from
Apr 5, 2021
Merged

Switch to the new LLVM pass manager #13818

merged 7 commits into from
Apr 5, 2021

Conversation

kripken
Copy link
Member

@kripken kripken commented Apr 5, 2021

LLVM has made the switch, and are releasing it to the general public
any day now in the new release. It doesn't really make sense for us to
be more careful about things than them.

Fixes #13427. As noted there, this does regress some things like the
minor code size increase in the test updates here, but also it helps on
some benchmarks. The overall tradeoff is good in LLVM's eyes.

For the LLVM compile time regression, I looked at how #13420
tried to fix it, but it's actually quite hard - almost every single macro
use there needs to be put in its own function, to avoid really bad
compile times. -O3 is just very very aggressive on those loops it
seems. Instead of a big refactoring, I disabled those tests on -O3
specifically. -O2 is close enough to give us good coverage there
I think - the main difference between them is inlining, after all.

@kripken kripken requested review from sbc100 and tlively April 5, 2021 20:58
@kripken kripken merged commit 04b2a82 into main Apr 5, 2021
@kripken kripken deleted the unleg branch April 5, 2021 23:11
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.

Switch to LLVM's new pass manager
3 participants