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
Contributor

@tmiasko 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.

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
Copy link
Contributor Author

tmiasko commented Mar 3, 2020

r? @nikic

@rust-highfive rust-highfive assigned nikic and unassigned nikomatsakis Mar 3, 2020
@JohnTitor JohnTitor added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 3, 2020
@nikic
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
Copy link
Contributor

bors commented Mar 3, 2020

📌 Commit b0e288d has been approved by nikic

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 3, 2020
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
@tmiasko tmiasko deleted the new-pass-manager-thin-lto-opt branch March 4, 2020 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants