Vadim Chugunov
6cc3189787
Made the while DebugContext mutable, not just created_* hashes
...
Disabled create_arg
2013-06-17 08:41:23 -07:00
Vadim Chugunov
868f9a88d6
Use DIBuilder in debuginfo
2013-06-17 08:41:23 -07:00
Alex Crichton
dc18321ef5
Don't run passes again on JIT code
...
These passes are already run beforehand, no need to do them twice.
2013-06-13 22:53:10 -07:00
Alex Crichton
a90fffe367
Revert "Revert "Have JIT execution take ownership of the LLVMContextRef""
...
This reverts commit 19adece68b
.
2013-06-13 21:25:18 -07:00
Alex Crichton
1a3edecbf2
Revert "Revert "Remove all usage of the global LLVMContextRef""
...
This reverts commit 541c657a73
.
2013-06-13 21:25:12 -07:00
Brian Anderson
541c657a73
Revert "Remove all usage of the global LLVMContextRef"
...
This reverts commit 779191cd4b
.
Conflicts:
src/librustc/middle/trans/base.rs
src/librustc/middle/trans/common.rs
2013-06-13 13:08:57 -07:00
Brian Anderson
19adece68b
Revert "Have JIT execution take ownership of the LLVMContextRef"
...
This reverts commit 5c5095d25e
.
Conflicts:
src/librusti/rusti.rc
2013-06-13 13:08:57 -07:00
Alex Crichton
5c5095d25e
Have JIT execution take ownership of the LLVMContextRef
...
Also stop leaking the ExecutionEngine created for jit code by forcibly disposing
of it after the JIT code has finished executing
2013-06-10 13:17:04 -07:00
Alex Crichton
779191cd4b
Remove all usage of the global LLVMContextRef
...
This allows parallel usage of the rustc library
2013-06-10 13:17:04 -07:00
James Miller
d694e283b3
Refactor optimization pass handling.
...
Refactor the optimization passes to explicitly use the passes. This commit
just re-implements the same passes as were already being run.
It also adds an option (behind `-Z`) to run the LLVM lint pass on the
unoptimized IR.
2013-05-29 14:16:49 +12:00
Brian Anderson
474d9983be
rustllvm: Use target alignment for atomic load/store
2013-05-20 17:28:06 -07:00
James Miller
a289dcd187
Fix AtomicLoad builder code
2013-05-17 14:48:24 +12:00
Matthijs Hofstra
a9f2132606
Adds atomic_load, atomic_load_acq, atomic_store, and atomic_store_rel intrinsics.
...
The default versions (atomic_load and atomic_store) are sequentially consistent.
The atomic_load_acq intrinsic acquires as described in [1].
The atomic_store_rel intrinsic releases as described in [1].
[1]: http://llvm.org/docs/Atomics.html
2013-05-12 23:23:40 +02:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
Seo Sanghyeon
da4bc490e6
Choose target features
2013-04-22 20:54:12 +09:00
Patrick Walton
90b65c8839
llvm: Fixes for RustWrapper.
2013-04-19 11:53:34 -07:00
Patrick Walton
af42d37547
rustllvm: Fix RustWrapper.cpp
2013-04-19 11:53:32 -07:00
Patrick Walton
f903ae9e72
librustc: Implement fast-ffi and use it in various places
2013-04-19 11:53:31 -07:00
Brian Anderson
a34948a2c5
rustllvm: Initialize target analysis passes
...
Without this the target info for certain optimizations will not be
created and the compiler will sometimes crash
2013-04-10 18:49:51 -07:00
Young-il Choi
4b4f48283b
rustllvm: followup latest LLVM
2013-04-10 18:49:50 -07:00
Tim Chevalier
d6f455ebca
rustllvm: Only initialize command-line arguments once
...
In my WIP on rustpkg, I was calling driver code that calls
LLVMRustWriteOutputFile more than once. This was making LLVM
unhappy, since that function has code that initializes the
command-line options for LLVM, and I guess you can't do that more
than once. So, check if they've already been initialized.
2013-04-05 17:18:26 -07:00
ILyoan
1ded138851
Enable arm error handling abi 2
2013-03-19 17:23:18 +09:00
ILyoan
f581b2f9dd
Enable arm error handling abi
2013-03-19 17:23:08 +09:00
ILyoan
10df2ea9db
Normalize target triple so that llvm can recognize target os correctly
2013-03-15 15:39:58 +09:00
Niko Matsakis
efc7f82bc4
Revamp foreign code not to consider the Rust modes. This requires
...
adjusting a few foreign functions that were declared with by-ref
mode. This also allows us to remove by-val mode in the near future.
With copy mode, though, we have to be careful because Rust will implicitly pass
somethings by pointer but this may not be the C ABI rules. For example, rust
will pass a struct Foo as a Foo*. So I added some code into the adapters to
fix this (though the C ABI rules may put the pointer back, oh well).
This patch also includes a lint mode for the use of by-ref mode
in foreign functions as the semantics of this have changed.
2013-03-13 16:59:37 -04:00
Luqman Aden
fc78b93c41
Wrap llvm::InlineAsm::AsmDialect
2013-03-12 01:03:34 -07:00
Luqman Aden
ecccc0d649
Parse inline assembly.
2013-03-12 01:03:34 -07:00
Jyun-Yan You
5150b9811b
rustc: MIPS32 support
2013-03-03 19:27:27 -08:00
kyeongwoon
987f824f23
Support ARM and Android
...
Conflicts:
src/libcore/os.rs
src/librustc/back/link.rs
src/librustc/driver/driver.rs
src/librustc/metadata/loader.rs
src/librustc/middle/trans/base.rs
2013-01-13 16:43:39 -08:00
Brian Leibig
dda12f8ef6
Replace much of the REPL run code with a call to compile_upto
2012-12-28 13:51:02 -08:00
Patrick Walton
3ee1d3ebb8
rustllvm: Fix symbol resolution on Mac for rusti. rs=bugfix
2012-12-22 16:24:19 -05:00
Graydon Hoare
12c32e944d
Add license boilerplate to more files.
2012-12-10 17:32:58 -08:00
Luqman Aden
e1db959ec2
rustc: add new intrinsics - atomic_cxchg{_acq,_rel}
2012-10-21 22:23:50 -04:00
Luca Bruno
97ecde297e
Conditional usage of LLVM DebugFlag
...
DebugFlag is conditionally exported by LLVM in llvm/Support/Debug.h
in-between an #ifndef NDEBUG block; RustWrapper should not
unconditionally use it. This closes #3701 .
Signed-off-by: Luca Bruno <lucab@debian.org>
2012-10-11 07:33:49 +02:00
Zack Corr
b3f418c10e
jit: Remove old crate loading code and don't search through loaded crates (use llvm default instead)
2012-09-28 18:05:49 +10:00
Zack Corr
ca4455666e
jit: Initialize native parser so rust-repl works
2012-09-27 16:07:33 +10:00
Zack Corr
ebe6b2d15c
jit: Enable exception handling
2012-09-27 12:57:58 +10:00
Zack Corr
887b59b7be
jit: Separate JIT execution into two functions and load crates before main lookup
2012-09-27 12:57:58 +10:00
Zack Corr
efb576a60d
jit: Clean rustllvm code, let rustc expose __morestack instead of linking in libmorestack and return _rust_main and call it from rustc
2012-08-31 16:20:36 -07:00
Zack Corr
6723a5a0ea
jit: Forgot header for inlining pass
2012-08-31 16:20:36 -07:00
Zack Corr
19ea3ab480
jit: Add passes and cleanup code
2012-08-31 16:20:36 -07:00
Zack Corr
795acb7395
jit: Link in __morestack and make it resolvable by JIT
2012-08-31 16:20:36 -07:00
Zack Corr
7993f48209
jit: Add custom memory manager (still segfaulting)
2012-08-31 16:20:35 -07:00
Zack Corr
d7aa9918ef
Add experimental JIT compiler
2012-08-31 16:20:35 -07:00
Elliott Slaughter
987814f11e
Added debug flag to enable LLVM debug output.
2012-07-25 16:00:13 -07:00
Elliott Slaughter
d9c9a2f97e
Remove rustllvm functions which have moved upstream.
2012-07-24 17:11:13 -07:00
Zack Corr
480fa7c00e
Only initialize targets that are actually supported / linked to in RustWrapper
2012-07-24 17:11:13 -07:00
Glenn Willen
28c1f21433
Better error when rustc fails to write output.
2012-07-13 17:06:30 -04:00
Eric Holk
0a99912cdd
Adding a bunch of atomic intrinsics.
...
Adding a test cases for the atomic intrinsics.
2012-06-29 18:37:29 -07:00
Graydon Hoare
079c3b02a8
Update llvm and integrate clang and compiler-rt.
2012-04-30 17:48:38 -07:00