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

Support removed LLVM intrinsics by invoking its AutoUpgrade mechanism. #35261

Merged
merged 1 commit into from
Aug 4, 2016

Conversation

eddyb
Copy link
Member

@eddyb eddyb commented Aug 3, 2016

Turns out that LLVM sometimes renames platform intrinsics or replaces them with first-class instructions.
For example, signed minimum became select (icmp SLT, a, b), a, b where a and b are vectors.

This is blocking the Servo rustup (relevant failure), as they're using a few such intrinsics.
The fix in this PR is to invoke LLVM's own AutoUpgrade mechanism to do the replacements.

@rust-highfive
Copy link
Collaborator

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@nikomatsakis
Copy link
Contributor

@bors r+ p=1

Giving higher priority since it'd be nice to see this in nightly.

@bors
Copy link
Contributor

bors commented Aug 3, 2016

📌 Commit 63f0c4d has been approved by nikomatsakis

@bors
Copy link
Contributor

bors commented Aug 3, 2016

⌛ Testing commit 63f0c4d with merge 0a3180b...

bors added a commit that referenced this pull request Aug 3, 2016
Support removed LLVM intrinsics by invoking its AutoUpgrade mechanism.

Turns out that LLVM sometimes renames platform intrinsics or replaces them with first-class instructions.
For example, signed minimum became `select (icmp SLT, a, b), a, b` where `a` and `b` are vectors.

This is blocking the Servo rustup ([relevant failure](http://build.servo.org/builders/windows-dev/builds/226/steps/compile/logs/stdio)), as they're using a few such intrinsics.
The fix in this PR is to invoke LLVM's own `AutoUpgrade` mechanism to do the replacements.
@bors bors mentioned this pull request Aug 3, 2016
@nagisa
Copy link
Member

nagisa commented Aug 3, 2016

Do we want a tracking issue/TODO for when we drop support for the last LLVM which still supports the call natively?

@bors
Copy link
Contributor

bors commented Aug 3, 2016

💔 Test failed - auto-linux-64-debug-opt

@eddyb
Copy link
Member Author

eddyb commented Aug 3, 2016

@bors retry

@eddyb
Copy link
Member Author

eddyb commented Aug 3, 2016

@bors force

@bors bors merged commit 63f0c4d into rust-lang:master Aug 4, 2016
@eddyb eddyb deleted the llvm-autoupgrade branch August 4, 2016 02:00
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.

5 participants