]> git.lizzy.rs Git - rust.git/commit
Upgrade LLVM
authorAlex Crichton <alex@alexcrichton.com>
Mon, 31 Mar 2014 21:43:19 +0000 (14:43 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Thu, 17 Apr 2014 18:11:39 +0000 (11:11 -0700)
commit30ff17f809869dec37d7b501fb532dc88fd47832
treec2959002747236a37d2b5a1920ba49c8aea4c099
parent903fbd263553c105b7b8c5f5ee19fab89d4618bd
Upgrade LLVM

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.
13 files changed:
configure
src/librustc/lib/llvm.rs
src/librustc/middle/trans/base.rs
src/librustc/middle/trans/build.rs
src/librustc/middle/trans/builder.rs
src/librustc/middle/trans/debuginfo.rs
src/librustc/middle/trans/intrinsic.rs
src/librustc/middle/trans/monomorphize.rs
src/llvm
src/rustllvm/PassWrapper.cpp
src/rustllvm/RustWrapper.cpp
src/rustllvm/llvm-auto-clean-trigger
src/rustllvm/rustllvm.h