summary refs log tree commit diff
path: root/src/llvm
AgeCommit message (Collapse)AuthorLines
2017-10-05Faster compile times for release builds with llvm fixAndreas Jonson-0/+0
2017-07-18Fix LLVM assertion when a weak symbol is defined in global_asm.Vadzim Dambrouski-0/+0
This change will fix the issue from https://github.com/japaric/svd2rust/pull/130
2017-07-12[LLVM] Avoid losing the !nonnull attribute in SROAAriel Ben-Yehuda-0/+0
This still does not work on 32-bit archs because of an LLVM limitation, but this is only an optimization, so let's push it on 64-bit only for now. Fixes #37945
2017-07-06rustc: Implement stack probes for x86Alex Crichton-0/+0
This commit implements stack probes on x86/x86_64 using the freshly landed support upstream in LLVM. The purpose of stack probes here are to guarantee a segfault on stack overflow rather than having a chance of running over the guard page already present on all threads by accident. At this time there's no support for any other architecture because LLVM itself does not have support for other architectures.
2017-06-27Rebase LLVM on top of LLVM 4.0.1Ariel Ben-Yehuda-0/+0
Fixes #42893.
2017-06-21Update LLVM to fix unsigned multiplication overflowJames Duley-0/+0
check for some targets, notably ARMv6-M.
2017-06-19Update LLVM to pick StackColoring improvementAriel Ben-Yehuda-0/+0
Fixes #40883.
2017-06-19Backport fixes to LLVM 4.0 ARM codegen bugsAriel Ben-Yehuda-0/+0
So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM trunk. This backports 5 of them: r297871 - ARM: avoid clobbering register in v6 jump-table expansion. - fixes rust-lang/rust#42248 r294949 - [Thumb-1] TBB generation: spot redefinitions of index r295816 - [ARM] Fix constant islands pass. r300870 - [Thumb-1] Fix corner cases for compressed jump tables r302650 - [IfConversion] Add missing check in IfConversion/canFallThroughTo - unblocks rust-lang/rust#39409
2017-06-15Add a no-system-llvm compilecheck headerSimonas Kazlauskas-0/+0
2017-06-08Upgrade LLVMSimonas Kazlauskas-0/+0
Includes https://github.com/rust-lang/llvm/pull/80 Includes https://github.com/rust-lang/llvm/pull/79 Also adds tests and thus fixes #24194
2017-05-13LLVM: Add support for EABI-compliant libcalls on MSP430.Vadzim Dambrouski-0/+0
This change will allow rust code to have proper support for division and multiplication using libgcc libcalls.
2017-05-04Update llvm to pull in various backportsTim Neumann-0/+0
2017-04-27Update LLVM to fix incorrect codegen on MSP430.Vadzim Dambrouski-0/+0
The bug was reported by @akovaski here: https://github.com/rust-embedded/rfcs/issues/20#issuecomment-296482148
2017-04-26Cherry pick LLVM hexagon fixesMichael Wu-0/+0
2017-04-23FIN/LLVM: new rust patches required for 4.0Tim Neumann-0/+0
2017-04-23FIN/LLVM: adopt all applicable rust llvm patchesTim Neumann-0/+0
2017-04-23FIN: update to upstream (llvm 4.0.1 + fastcomp 1.37.10) & compiler-rt 4.0Tim Neumann-0/+0
2017-03-24update LLVM with fix for PR32379Ariel Ben-Yehuda-0/+0
Fixes #40593.
2017-03-19update LLVMAriel Ben-Yehuda-0/+0
pick up a fix to LLVM PR29151.
2017-03-10LLVM: Update submodule to include SRet support patch for MSP430.Vadzim Dambrouski-0/+0
2017-03-02LLVM: Update submodule to include x86-interrupt ABI patchesPhilipp Oppermann-0/+0
2016-12-16llvm: backport r280651Jorge Aparicio-0/+0
fixes #38406
2016-12-08LLVM: Update submodule to include patches for MSP430.Vadzim Dambrouski-0/+0
Fixes #37829
2016-12-01Update llvm fork to 3ec14daffb4b8c0604df50b7fb0ab552f456e381Anthony Ramine-0/+0
2016-10-29LLVM: Update submodule to rust-llvm-2016-10-29 branch.Vadzim Dambrouski-0/+0
2016-10-19LLVM: Add triple for FuchsiaRaph Levien-0/+0
Update subproject commit.
2016-10-10LLVM: Backport "[SimplifyCFG] Correctly test for unconditional branches in ↵Michael Woerister-0/+0
GetCaseResults"
2016-10-10Update LLVM to fix bug in SimplifyCFG pass.Michael Woerister-0/+0
2016-10-07llvm: Update LLVM to include fix for pathologic case in its LiveDebugValues ↵Michael Woerister-0/+0
pass.
2016-09-30Update LLVM with fastcomp patchesBrian Anderson-0/+0
2016-09-17Up the LLVMSimonas Kazlauskas-0/+0
Fixes #36474
2016-09-01Fix optimization regressions for operations on [x; n]-initialized arrays.Eduard Burtescu-0/+0
2016-08-29llvm: backport "[SimplifyCFG] Hoisting invalidates metadata".Eduard Burtescu-0/+0
2016-08-17Update LLVM to include 4 backported commits by @majnemer.Eduard Burtescu-0/+0
2016-08-10Improved checking of target's llvm_configCameron Hart-0/+0
Point llvm @bitshifter branch until PR accepted Use today's date for LLVM auto clean trigger Update LLVM submodule to point at rust-lang fork. Handle case when target is set
2016-08-06Merge branch 'master' into issue-30961Cameron Hart-0/+0
2016-08-01Upgrade LLVM once more to get a bugfixJan-Erik Rediger-0/+0
@tmiasko did some digging and discovered that https://reviews.llvm.org/D22858 may be relevant.
2016-07-29Update LLVM againJan-Erik Rediger-0/+0
2016-07-29[LLVM-3.9] Use llvm-3.9 branchJan-Erik Rediger-0/+0
2016-07-29rustc: Update LLVM to the LLVM 3.9 release branchAlex Crichton-0/+0
The 3.9 release of LLVM isn't out yet, but this moves us onto that branch to start tracking it.
2016-07-29Upgrade llvmJan-Erik Rediger-0/+0
2016-07-29Upgrade LLVM to include std::thread patchJan-Erik Rediger-0/+0
2016-07-29Upgrade to rust-llvm-2016-07-09Jan-Erik Rediger-0/+0
2016-07-19Hopefully this is the right llvm commit this time!Cameron Hart-0/+0
2016-07-11Add help for target CPUs, features, relocation and code models.Cameron Hart-0/+0
2016-07-08Update LLVM.Michael Woerister-0/+0
2016-06-05Update LLVMAriel Ben-Yehuda-0/+0
Picks up the fix for PR28005
2016-05-09rustc: Use C++ personalities on MSVCAlex Crichton-0/+0
Currently the compiler has two relatively critical bugs in the implementation of MSVC unwinding: * #33112 - faults like segfaults and illegal instructions will run destructors in Rust, meaning we keep running code after a super-fatal exception has happened. * #33116 - When compiling with LTO plus `-Z no-landing-pads` (or `-C panic=abort` with the previous commit) LLVM won't remove all `invoke` instructions, meaning that some landing pads stick around and cleanups may be run due to the previous bug. These both stem from the flavor of "personality function" that Rust uses for unwinding on MSVC. On 32-bit this is `_except_handler3` and on 64-bit this is `__C_specific_handler`, but they both essentially are the "most generic" personality functions for catching exceptions and running cleanups. That is, thse two personalities will run cleanups for all exceptions unconditionally, so when we use them we run cleanups for **all SEH exceptions** (include things like segfaults). Note that this also explains why LLVM won't optimize away `invoke` instructions. These functions can legitimately still unwind (the `nounwind` attribute only seems to apply to "C++ exception-like unwining"). Also note that the standard library only *catches* Rust exceptions, not others like segfaults and illegal instructions. LLVM has support for another personality, `__CxxFrameHandler3`, which does not run cleanups for general exceptions, only C++ exceptions thrown by `_CxxThrowException`. This essentially ideally matches our use case, so this commit moves us over to using this well-known personality function as well as exception-throwing function. This doesn't *seem* to pull in any extra runtime dependencies just yet, but if it does we can perhaps try to work out how to implement more of it in Rust rather than relying on MSVCRT runtime bits. More details about how this is actually implemented can be found in the changes itself, but this... Closes #33112 Closes #33116
2016-04-26Update llvm to 751345228a0ef03fd147394bb5104359b7a808beFabrice Desré-0/+0
2016-03-18Update LLVM to include a backport to restore AA performanceBjörn Steinbrink-0/+0
cc #31435