about summary refs log tree commit diff
path: root/src/llvm
AgeCommit message (Collapse)AuthorLines
2015-01-18Redo Segmented stack support for DragonFlyMichael Neumann-0/+0
It got accidentially reverted in 44440e5.
2015-01-06core: split into fmt::Show and fmt::StringSean McArthur-0/+0
fmt::Show is for debugging, and can and should be implemented for all public types. This trait is used with `{:?}` syntax. There still exists #[derive(Show)]. fmt::String is for types that faithfully be represented as a String. Because of this, there is no way to derive fmt::String, all implementations must be purposeful. It is used by the default format syntax, `{}`. This will break most instances of `{}`, since that now requires the type to impl fmt::String. In most cases, replacing `{}` with `{:?}` is the correct fix. Types that were being printed specifically for users should receive a fmt::String implementation to fix this. Part of #20013 [breaking-change]
2015-01-05Segmented stack support for DragonFlyMichael Neumann-0/+0
2014-10-17Update LLVM to get slightly better memcpy elisionBjörn Steinbrink-0/+0
2014-10-04Update LLVM.Luqman Aden-0/+0
2014-09-08Update LLVM to fix a crash in the MergeFunc passBjörn Steinbrink-0/+0
2014-08-04Update LLVMVadim Chugunov-0/+0
2014-07-29Update LLVM to fix miscompilations due to wrongfully removed lifetime intrinsicsBjörn Steinbrink-0/+0
Fixes #15972 and #16011.
2014-07-24Updated LLVM for iOSValerii Hiora-0/+0
There should be no more problems during SjLj pass
2014-07-21Update LLVM to address an issue with range metadata in hoisted loadsJakub Wieczorek-0/+0
Fixes #15793.
2014-07-21Update LLVM to include NullCheckElimination passBjörn Steinbrink-0/+0
Fixes #11751
2014-06-21Update LLVMBjörn Steinbrink-0/+0
To fix #8106, we need an LLVM version that contains r211082 aka 0dee6756 which fixes a bug that blocks that issue. There have been some tiny API changes in LLVM, and cmpxchg changed its return type. The i1 part of the new return type is only interesting when using the new weak cmpxchg, which we don't do.
2014-05-22Update to LLVM head and mark various ptrs as nonnull.Luqman Aden-0/+0
2014-04-17Upgrade LLVMAlex Crichton-0/+0
This comes with a number of fixes to be compatible with upstream LLVM: * Previously all monomorphizations of "mem::size_of()" would receive the same symbol. In the past LLVM would silently rename duplicated symbols, but it appears to now be dropping the duplicate symbols and functions now. The symbol names of monomorphized functions are now no longer solely based on the type of the function, but rather the type and the unique hash for the monomorphization. * Split stacks are no longer a global feature controlled by a flag in LLVM. Instead, they are opt-in on a per-function basis through a function attribute. The rust #[no_split_stack] attribute will disable this, otherwise all functions have #[split_stack] attached to them. * The compare and swap instruction now takes two atomic orderings, one for the successful case and one for the failure case. LLVM internally has an implementation of calculating the appropriate failure ordering given a particular success ordering (previously only a success ordering was specified), and I copied that into the intrinsic translation so the failure ordering isn't supplied on a source level for now. * Minor tweaks to LLVM's API in terms of debuginfo, naming, c++11 conventions, etc.
2014-02-25Update LLVMAlex Crichton-0/+0
Upstream LLVM has changed slightly such that our PassWrapper.cpp no longer comiles (travis errors). This updates the bundled LLVM to the latest nightly which will hopefully fix the travis errors we're seeing.
2014-02-21Restore LLVM to the correct revisionKevin Ballard-0/+0
PR #12407 was accidentally reverted by PR #12411. Restore the correct version of LLVM that PR #12407 introduced.
2014-02-21Move time out of extra (cc #8784)Arcterus-0/+0
2014-02-19Upgrade LLVM for segmented stacks on thumbAlex Crichton-0/+0
This updates the LLVM submodule to the `rust-llvm-2014-02-19` tag which is the old one with https://github.com/rust-lang/llvm/pull/4 cherry-picked on top. Awesome job by @neykov for this!
2014-02-14Upgrade LLVMAlex Crichton-0/+0
Includes an upstream commit by pcwalton to improve codegen of our enums getting moved around.
2014-01-29Upgrade LLVMAlex Crichton-0/+0
This upgrade brings commit by @eddyb to help optimizations of virtual calls in a few places (https://github.com/llvm-mirror/llvm/commit/6d2bd95) as well as a commit by @c-a to *greatly* improve the runtime of the optimization passes (https://github.com/rust-lang/llvm/pull/3). Nice work to these guys!
2014-01-23update llvmaydin.kim-0/+0
2013-12-29Update llvm.Luqman Aden-0/+0
2013-12-05Remove unused upcallsAlex Crichton-0/+0
The main one removed is rust_upcall_reset_stack_limit (continuation of #10156), and this also removes the upcall_trace function. The was hidden behind a `-Z trace` flag, but if you attempt to use this now you'll get a linker error because there is no implementation of the 'upcall_trace' function. Due to this no longer working, I decided to remove it entirely from the compiler (I'm also a little unsure on what it did in the first place).
2013-12-05Update LLVM and jettison jit supportAlex Crichton-0/+0
LLVM's JIT has been updated numerous times, and we haven't been tracking it at all. The existing LLVM glue code no longer compiles, and the JIT isn't used for anything currently. This also rebases out the FixedStackSegment support which we have added to LLVM. None of this is still in use by the compiler, and there's no need to keep this functionality around inside of LLVM. This is needed to unblock #10708 (where we're tripping an LLVM assertion).
2013-09-15Upgrade LLVM to close #9117Alex Crichton-0/+0
2013-08-28Enable segmented stacks for llvm on mingw-64Alex Crichton-0/+0
cc #8488
2013-08-20Upgrade llvm to current HEADAlex Crichton-0/+0
* This has one workaround patch (everything's testing just fine...) * I reworked the fixedstacksegment attribute to be specified with a string rather than using a keyword and an integer and modifying the parser * I added a "no-split-stack" attribute along the same lines as the "fixedstacksegment" attribute for #1226
2013-08-04Integrate new arm patch and fix an LLVM bugAlex Crichton-0/+0
Thanks @luqama!
2013-08-04Update LLVMAlex Crichton-0/+0
2013-04-30Reverse accidental src/llvm reversion in 876483dcf, and add test.Jed Davis-0/+0
The test is reduced from a doc test, but making it separate ensures that (1) unrelated changes to the docs won't leave this case uncovered, and (2) the nature of any future failures will be more obvious to whoever sees the tree on fire as a result.
2013-04-29test: Fix tests.Patrick Walton-0/+0
2013-04-21Fix LLVM bug affecting i1 switches emitted for nullable enum match.Jed Davis-0/+0
2013-04-10Update LLVM for ARM changesBrian Anderson-0/+0
2012-11-14llvm: fork to disable LiveIRVariabes in GCStrategy.Graydon Hoare-0/+0
2012-10-05Hack around llvm 14013Brian Anderson-0/+0
2012-10-01Bump llvm again to pick up a compiler-rt fix for OS XBrian Anderson-0/+0
2012-09-30Another llvm update, this time updating compiler-rtErick Tryzelaar-0/+0
2012-09-30Add bbrittain's llvm python fixesBrian Anderson-0/+0
2012-09-30rebase rust llvm patches onto llvm HEADErick Tryzelaar-0/+0
2012-09-28Update llvm to pick up a dynamic linking fix for the JITBrian Anderson-0/+0
2012-08-25Reset src/llvm to what it was (not sure what happened here)Tim Chevalier-0/+0
2012-08-24Eliminate match checks in trans and typeckTim Chevalier-0/+0
2012-08-24llvm: Update LLVM for addrspaces.Elliott Slaughter-0/+0
2012-08-24llvm: Update LLVM for liveness fixes.Elliott Slaughter-0/+0
2012-07-30Update LLVM for better liveness algorithm.Elliott Slaughter-0/+0
2012-07-26Register snapshots.Paul Stansifer-0/+0
2012-07-24Bump LLVM, clang and compiler-rt, integrating eds' work.Graydon Hoare-0/+0
2012-04-30Update llvm and integrate clang and compiler-rt.Graydon Hoare-0/+0
2012-04-09llvm: Update llvm to use new gcnoteroot infrastructurePatrick Walton-0/+0
2012-03-14Upgrade LLVM and add fix to PE/COFF relocation overflow handling.Graydon Hoare-0/+0