-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
[LLVM 4.0] Use llvm::Attribute APIs instead of "raw value" APIs #37831
Conversation
r? @eddyb (rust_highfive has picked a reviewer for you, use r? to override) |
Do we build against all the |
The llvm::Attribute API seems to go back to at least 3.6 (e.g. this document is essentially unchanged since before 3.7) |
@bors r+ |
📌 Commit cbc59b8 has been approved by |
@@ -12,8 +12,7 @@ crate-type = ["dylib"] | |||
[features] | |||
static-libstdcpp = [] | |||
|
|||
[dependencies] | |||
rustc_bitflags = { path = "../librustc_bitflags" } | |||
# FIXME this crate uses libc, which somehow works without a dependency here |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's ok to remove these, crates in this crate graph currently don't explicitly depend on the std crate and below (so this is expected)
cbc59b8
to
15aaf94
Compare
@bors: r=eddyb |
📌 Commit 15aaf94 has been approved by |
…moved in LLVM 4.0. The librustc_llvm API remains mostly unchanged, except that llvm::Attribute is no longer a bitflag but represents only a *single* attribute. The ability to store many attributes in a small number of bits and modify them without interacting with LLVM is only used in rustc_trans::abi and closely related modules, and only attributes for function arguments are considered there. Thus rustc_trans::abi now has its own bit-packed representation of argument attributes, which are translated to rustc_llvm::Attribute when applying the attributes.
15aaf94
to
30daedf
Compare
Fixed an embarrassing compile error introduced in a last-minute renaming. |
@bors r+ |
📌 Commit 30daedf has been approved by |
[LLVM 4.0] Use llvm::Attribute APIs instead of "raw value" APIs The latter will be removed in LLVM 4.0 (see llvm-mirror/llvm@4a6fc8b). The librustc_llvm API remains mostly unchanged, except that llvm::Attribute is no longer a bitflag but represents only a *single* attribute. The ability to store many attributes in a small number of bits and modify them without interacting with LLVM is only used in rustc_trans::abi and closely related modules, and only attributes for function arguments are considered there. Thus rustc_trans::abi now has its own bit-packed representation of argument attributes, which are translated to rustc_llvm::Attribute when applying the attributes. cc #37609
The latter will be removed in LLVM 4.0 (see llvm-mirror/llvm@4a6fc8b).
The librustc_llvm API remains mostly unchanged, except that llvm::Attribute is no longer a bitflag but represents only a single attribute.
The ability to store many attributes in a small number of bits and modify them without interacting with LLVM is only used in rustc_trans::abi and closely related modules, and only attributes for function arguments are considered there.
Thus rustc_trans::abi now has its own bit-packed representation of argument attributes, which are translated to rustc_llvm::Attribute when applying the attributes.
cc #37609