Commit Graph

30 Commits

Author SHA1 Message Date
Akos Kiss
6e5fb8bd1b Initial version of AArch64 support.
Adds AArch64 knowledge to:
* configure,
* make files,
* sources,
* tests, and
* documentation.
2015-01-03 15:16:10 +00:00
Luqman Aden
4b22178d32 Update LLVM. 2014-10-04 13:28:57 -04:00
Björn Steinbrink
cdfa637dad Update LLVM to fix a crash in the MergeFunc pass 2014-09-08 17:07:03 +02:00
Vadim Chugunov
cd2003ffd8 Added clarification regarding rust_try_inner. 2014-08-05 19:14:15 -07:00
Vadim Chugunov
a12b23521f Update LLVM 2014-08-04 17:43:56 -07:00
Björn Steinbrink
04fa906648 Update LLVM to fix miscompilations due to wrongfully removed lifetime intrinsics
Fixes #15972 and #16011.
2014-07-29 15:44:26 -07:00
Valerii Hiora
57cade5744 Updated LLVM for iOS
There should be no more problems during SjLj pass
2014-07-24 07:25:55 -07:00
Jakub Wieczorek
febfb752d2 Update LLVM to address an issue with range metadata in hoisted loads
Fixes #15793.
2014-07-21 22:52:49 +02:00
Björn Steinbrink
e3887a7766 Update LLVM to include NullCheckElimination pass
Fixes #11751
2014-07-21 09:54:50 -07:00
Björn Steinbrink
90a9f65b8d Update LLVM
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-06-21 19:59:58 +02:00
Luqman Aden
90eeb92e10 Update to LLVM head and mark various ptrs as nonnull. 2014-05-22 21:06:24 -04:00
Alex Crichton
30ff17f809 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.
2014-04-17 11:11:39 -07:00
Alex Crichton
294b27d806 Update LLVM
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-25 09:37:30 -08:00
Alex Crichton
804955f79a Upgrade LLVM
Includes an upstream commit by pcwalton to improve codegen of our enums getting
moved around.
2014-02-14 07:22:49 -08:00
Alex Crichton
8cd935f52a Upgrade LLVM
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-29 23:43:39 -08:00
aydin.kim
be6fb8f2cd update llvm 2014-01-23 15:15:43 -08:00
Alex Crichton
219478fb41 Build llvm-extract (needed by codegen tests) 2014-01-23 15:13:00 -08:00
Luqman Aden
d9eaeda21c Update llvm. 2013-12-29 23:38:43 -05:00
klutzy
1890290ded llvm: Disable pthread on mingw
llvm supports both win32 native threads and pthread,
but configure tries to find pthread first.
This manually disables pthread to use native api.

This removes libpthreads-2.dll dependency on librustc.
2013-12-18 09:48:58 +09:00
Alex Crichton
17a951c7bf Remove unused upcalls
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-05 16:29:16 -08:00
Alex Crichton
6b34ba242d Update LLVM and jettison jit support
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-12-05 09:15:54 -08:00
Alex Crichton
5a78b54586 Disable zlib/libffi when configuring LLVM
This should help bring fewer dependencies in to the snapshots.

Closes #9397
2013-09-23 10:07:22 -07:00
Daniel Micay
8c45423a8a touch LLVM clean trigger 2013-09-22 22:48:40 -04:00
Alex Crichton
3cb0bc6523 Upgrade LLVM to close #9117 2013-09-15 20:26:40 -07:00
Daniel Micay
1f4aba8cbf touch llvm clean trigger 2013-09-01 15:03:28 -04:00
Alex Crichton
d1e4815255 Upgrade llvm to current HEAD
* 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-20 01:12:47 -07:00
Alex Crichton
1d06aaae64 Update LLVM 2013-08-04 10:58:22 -07:00
Daniel Micay
23da380291 force LLVM clean 2013-07-03 23:23:29 -04:00
Alex Crichton
5183a6cc6c Turn on using LLVM threadsafely 2013-07-01 08:30:05 -07:00
Graydon Hoare
9591832112 mk: add mechanisms for triggering clean-llvm builds from commits 2013-06-27 17:12:07 -07:00