5 ms·
Is there anything of particular interest to Rust? I'm know Rust is built on LLVM (for both good and ill but mostly good).
by ChrisSD 8y ago
Is there anything of particular interest to Rust? I'm know Rust is built on LLVM (for both good and ill but mostly good).
- nikic 8y agoRust updates LLVM more commonly than LLVM does stable releases, so it has been using a version somewhere between LLVM 6 and LLVM 7 for a while already. I think one of the main areas that improved in LLVM 7 relative to LLVM 6 that Rust cares about is better support for WASM in LLD.
- steveklabnik 8y agoWe also had to turn off noalias for &mut T for a while, due to bugs, and that was fixed fairly recently, and we turned it back on. I think that was post LLVM 6, but I can't quite remember.
- lambda 8y agoLooks like it was as of LLVM 6: https://github.com/rust-lang/rust/pull/50744 https://github.com/rust-lang/rust/pull/50744
- CUViper 8y agoRust 1.30 (now in beta) has already moved to a newer snapshot of trunk, LLVM 8ish.
- lambda 8y agoAccording to the "Update to LLVM 7" ticket for Rust (https://github.com/rust-lang/rust/issues/50543 https://github.com/rust-lang/rust/issues/50543), many of the points of interest are in LLD, especially in WASM support: LLD has implemented --gc-sections for wasm LLD has implemented DWARF debugging information sections for wasm LLD has natively implemented concatenation of custom sections for wasm LLD has gained the ability to place the stack first in a wasm module's memory layout, reducing the corruption that happens on a stack overflow LLD option to not merge data segments Some SIMD generic float intrinsics have been fixed LLD optimizing further the size of release binaries LLD supports @-file syntax Other things which mention LLVM 7 in the Rust bug tracker: https://github.com/rust-lang/rust/issues/52457 https://github.com/rust-lang/rust/issues/52457 "use funnel shift intrinsic to implement rotates" https://github.com/rust-lang/rust/issues/52323 https://github.com/rust-lang/rust/issues/52323 "emscripten already supports the wasm backend in LLVM7, so we should move the current emscripten-llvm from version 4.0 to that, so that we can remove all the workarounds lying around for LLVM < 5.0 (LLVM 5 is the new minimum supported version)." https://github.com/rust-lang/rust/issues/49740 https://github.com/rust-lang/rust/issues/49740 "Use separate memcpy source/dest alignments in LLVM 7" https://github.com/rust-lang/rust/issues/51872 https://github.com/rust-lang/rust/issues/51872 "Simplify u128->f32 casts thanks to LLVM r334777" edit to add: rustc stable 1.29.0 already uses LLVM 7, and nightly is already using LLVM 8; rustc frequently switches to the new LLVM release when it is branched, it doesn't wait until it is released: $ rustc +stable --version --verbose rustc 1.29.0 (aa3ca1994 2018-09-11) binary: rustc commit-hash: aa3ca1994904f2e056679fce1f185db8c7ed2703 commit-date: 2018-09-11 host: x86_64-apple-darwin release: 1.29.0 LLVM version: 7.0 $ rustc +nightly --version --verbose rustc 1.30.0-nightly (79fcc58b2 2018-09-18) binary: rustc commit-hash: 79fcc58b24d85743d025fd880fca55748662ed3e commit-date: 2018-09-18 host: x86_64-apple-darwin release: 1.30.0-nightly LLVM version: 8.0