Uh oh!
There was an error while loading. Please reload this page.
update LLVM with fix for PR32379 - #40779
Conversation
alexcrichton
commented
Mar 23, 2017
@bors: r+ Awesome work finding this bug! Seems like a great backport. FWIW we have tons of bug fixes on our LLVM fork that correspond to no actual release of LLVM. Unless you're using literally our LLVM then there's basically guaranteed to be at least one regression waiting for you if you use the compiler long enough. |
bors
commented
Mar 23, 2017
📌 Commit bd52ff1 has been approved by |
That's mostly MSVC fixes + optimizations, but I recommend all the distributors who want a working rustc to at least include a fix for https://bugs.llvm.org/show_bug.cgi?id=29163 (but that is included in 3.9.1). |
sanxiyn
commented
Mar 24, 2017
FYI, the importance of fix for LLVM 29163 is that without it rustup will segfault: see #36023. |
arielb1
commented
Mar 24, 2017
travis failure is a network error on Mac - the standard builder is green. |
pmarcelll
commented
Mar 24, 2017
I just realized that the latest nightly is still 1.17, not 1.18. |
arielb1
commented
Mar 24, 2017
@bors p=1 Try to get all 1.18 nightlies clean. |
bors
commented
Mar 24, 2017
update LLVM with fix for PR32379 Fixes#40593. The "root" codegen bug fixed here is that, when generating ARM code, unpatched LLVM 3.9/3.9.1 miscompiles bit operations in rare circumstances - this can cause user code compiled via LLVM (through both `rustc` and `clang`) to subtly return incorrect results - for more details, see the test in this PR or in the LLVM rare report. One effect of that LLVM bug is that `rustc` 1.17 (and possibly other versions) is miscompiled on ARM. The code generated by a miscompiled `rustc` lacks destructor calls in many circumstances. Users who run an affected/miscompiled `rustc` - 1.17 or above - on an ARM build machine will be affected by the (fairly blatant) missing destructor bug, regardless of the target architecture (this includes the official `1.17.0-beta.1`, `1.17.0-beta.2`, and some official 1.17/1.18 nightlies). Users who use an affected LLVM (that's any unpatched LLVM 3.9/3.9.1), whether through `rustc` (in any version that supports 3.9 - that's 1.12 or above) or through `clang`, who compile code to an ARM target architecture might be affected by the (fairly hard to hit) bit operation bug, regardless of the build machine. Distributors and user who want to compile rustc using their own LLVM should apply the [patch](llvm-mirror/llvm@cdc303e) to avoid miscompilations. r? @alexcrichton Beta-nominating because regression (rustc 1.16 is not blatantly miscompiled). This also picks a fix for the (MSVC-affecting) PR29151.
bors
commented
Mar 24, 2017
☀️ Test successful - status-appveyor, status-travis |
There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Bump stage0 to fix ARM LLVM There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Bump stage0 to fix ARM LLVM There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Bump stage0 to fix ARM LLVM There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Bump stage0 to fix ARM LLVM There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Bump stage0 to fix ARM LLVM There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Bump stage0 to fix ARM LLVM There was a serious ARM codegen bug in LLVM that was fixed by rust-lang#40779, also backported to beta. This updates stage0 to 1.17.0-beta.3 to pick up that change, so ARM can bootstrap natively again. Fixesrust-lang#41291 cc @arielb1
Fixes#40593.
The "root" codegen bug fixed here is that, when generating ARM code, unpatched LLVM 3.9/3.9.1 miscompiles bit operations in rare circumstances - this can cause user code compiled via LLVM (through both
rustcandclang) to subtly return incorrect results - for more details, see the test in this PR or in the LLVM rare report.One effect of that LLVM bug is that
rustc1.17 (and possibly other versions) is miscompiled on ARM. The code generated by a miscompiledrustclacks destructor calls in many circumstances.Users who run an affected/miscompiled
rustc- 1.17 or above - on an ARM build machine will be affected by the (fairly blatant) missing destructor bug, regardless of the target architecture (this includes the official1.17.0-beta.1,1.17.0-beta.2, and some official 1.17/1.18 nightlies).Users who use an affected LLVM (that's any unpatched LLVM 3.9/3.9.1), whether through
rustc(in any version that supports 3.9 - that's 1.12 or above) or throughclang, who compile code to an ARM target architecture might be affected by the (fairly hard to hit) bit operation bug, regardless of the build machine.Distributors and user who want to compile rustc using their own LLVM should apply the patch to avoid miscompilations.
r? @alexcrichton
Beta-nominating because regression (rustc 1.16 is not blatantly miscompiled). This also picks a fix for the (MSVC-affecting) PR29151.