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

Invoke OptimizerLastEPCallbacks in PreLinkThinLTO #69665

Merged
merged 3 commits into from Mar 4, 2020

Conversation

@tmiasko
Copy link

tmiasko commented Mar 3, 2020

The default ThinLTO pre-link pipeline does not include optimizer last
extension points. Thus, when using the new LLVM pass manager & ThinLTO
& sanitizers on any opt-level different from zero, the sanitizer
function passes would be omitted from the pipeline.

Add optimizer last extensions points manually to the pipeline, but guard
registration with stage check in the case this behaviour changes in the
future.

Tomasz Miąsko added 3 commits Mar 3, 2020
The default ThinLTO pre-link pipeline does not include optimizer last
extension points. Thus, when using the new LLVM pass manager & ThinLTO
& sanitizers on any opt-level different from zero, the sanitizer
function passes would be omitted from the pipeline.

Add optimizer last extensions points manually to the pipeline, but guard
registration with stage check in the case this behaviour changes in the
future.
Additionally verify that the current implementation of LLVM version
check (which uses lexicographic ordering) is good enough to exclude
versions before LLVM 9, where the new LLVM pass manager is unsupported.
Match `@__msan_keep_going = weak_odr constant i32 1`.
@tmiasko

This comment has been minimized.

Copy link
Author

tmiasko commented Mar 3, 2020

r? @nikic

@nikic

This comment has been minimized.

Copy link
Contributor

nikic commented Mar 3, 2020

@bors r+ rollup

I'll have to check whether this can be fixed upstream as well, I don't think this is intentional.

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Mar 3, 2020

📌 Commit b0e288d has been approved by nikic

bors added a commit that referenced this pull request Mar 3, 2020
Rollup of 6 pull requests

Successful merges:

 - #69565 (miri engine: turn some debug_assert into assert)
 - #69621 (use question mark operator in a few places.)
 - #69650 (cleanup more iterator usages (and other things))
 - #69653 (use conditions directly)
 - #69665 (Invoke OptimizerLastEPCallbacks in PreLinkThinLTO)
 - #69670 (Add explanation for E0379)

Failed merges:

r? @ghost
@bors bors merged commit 587ca17 into rust-lang:master Mar 4, 2020
4 checks passed
4 checks passed
pr Build #20200303.15 succeeded
Details
pr (Linux mingw-check) Linux mingw-check succeeded
Details
pr (Linux x86_64-gnu-llvm-7) Linux x86_64-gnu-llvm-7 succeeded
Details
pr (Linux x86_64-gnu-tools) Linux x86_64-gnu-tools succeeded
Details
@tmiasko tmiasko deleted the tmiasko:new-pass-manager-thin-lto-opt branch Mar 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants
You can’t perform that action at this time.