James Miller
4a1a0fbed5
Add an atomic fence intrinsic
2013-07-28 20:26:49 +12:00
Erick Tryzelaar
7af56bb921
std: move StrUtil::as_c_str into StrSlice
2013-07-23 16:56:22 -07:00
Björn Steinbrink
205baa6ca2
Avoid blocks for static allocas and loading the closure environment
...
These blocks were required because previously we could only insert
instructions at the end of blocks, but we wanted to have all allocas in
one place, so they can be collapse. But now we have "direct" access the
the LLVM IR builder and can position it freely. This allows us to use
the same trick that clang uses, which means that we insert a dummy
"marker" instruction to identify the spot at which we want to insert
allocas. We can then later position the IR builder at that spot and
insert the alloca instruction, without any dedicated block.
The block for loading the closure environment can now also go away,
because the function context now provides the toplevel block, and the
translation of the loading happens first, so that's good enough.
Makes the LLVM IR a bit more readable, saving a bunch of branches in the
unoptimized code, which benefits unoptimized builds.
2013-07-21 18:29:20 +02:00
Patrick Walton
06594ed96b
librustc: Remove pub extern
and priv extern
from the language.
...
Place `pub` or `priv` on individual items instead.
2013-07-20 17:39:38 -07:00
Michael Woerister
b2aeb4b04b
debuginfo: Cleaned up style issues for pull request.
2013-07-19 07:58:28 +02:00
Michael Woerister
f389bd8f2a
debuginfo: Support for tuple-style enums (WIP)
2013-07-19 07:55:24 +02:00
Michael Woerister
739f3eece9
debuginfo: Added support for c-style enums.
2013-07-19 07:55:24 +02:00
Michael Woerister
976d7a53cb
debuginfo: Began refactoring of composite type handling.
2013-07-19 07:53:57 +02:00
Patrick Walton
99b33f7219
librustc: Remove all uses of "copy".
2013-07-17 14:57:51 -07:00
Corey Richardson
1662bd371c
Great renaming: propagate throughout the rest of the codebase
2013-06-29 11:20:02 -04:00
Michael Sullivan
050d0e6b29
Add a depth counter to llvm::type_to_str to work around infinite llvm types.
2013-06-28 16:12:04 -07:00
Michael Sullivan
47afb33981
Add Float to llvm::type_to_str.
2013-06-28 16:12:04 -07:00
Luqman Aden
ca2966c6d0
Change finalize -> drop.
2013-06-25 21:14:39 -04:00
James Miller
0b0c756c9c
Fix warnings in trans
2013-06-22 12:38:40 +12:00
James Miller
81cf72c264
Finish up Type refactoring
2013-06-22 12:35:35 +12:00
James Miller
fd83b92b59
More Type refactorings
2013-06-22 12:26:33 +12:00
James Miller
1968622798
Start refacting LLVM Type handling
2013-06-22 12:24:21 +12:00
James Miller
b4b2cbb299
Change calls for TypeName stuff to methods
2013-06-22 12:24:20 +12:00
James Miller
3dbdb3a364
Methodize TypeNames
2013-06-22 12:24:20 +12:00
Daniel Micay
49c74524e2
vec: rm old_iter implementations, except BaseIter
...
The removed test for issue #2611 is well covered by the `std::iterator`
module itself.
This adds the `count` method to `IteratorUtil` to replace `EqIter`.
2013-06-21 03:20:22 -04:00
James Miller
229a88217f
librust: cleanup warnings (except 1)
2013-06-21 02:43:03 +12:00
Brian Anderson
b7a6919899
rustc: Dispose of LLVM passes in test cases
2013-06-19 15:18:25 -07:00
Vadim Chugunov
adff46250e
Fixed rebase fallout .
2013-06-17 08:42:05 -07:00
Vadim Chugunov
1e682e29eb
Refactoring and tidy warnings cleanup.
2013-06-17 08:41:26 -07:00
Vadim Chugunov
65dd6218af
Fixed remaining issues to pass debug-test/* tests.
...
Made debugger scripts source line insensitive.
2013-06-17 08:41:25 -07:00
Vadim Chugunov
62e86e044d
Fixed compile warnings.
...
Fixed whitespace "errors".
2013-06-17 08:41:25 -07:00
Vadim Chugunov
1079e41143
Move "return" basic block after all other function blocks.
2013-06-17 08:41:23 -07:00
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
Daniel Micay
fe3ad0a204
rm some uses of to_mut_unsafe_ptr
2013-06-08 15:02:32 -04:00
Björn Steinbrink
1720d9f663
Remove a bunch of unnecessary allocations and copies
2013-05-30 11:49:04 +02:00
Patrick Walton
206ab89629
librustc: Stop reexporting the standard modules from prelude.
2013-05-29 19:04:53 -07:00
James Miller
faf1afee16
Further refactor optimization pass handling
...
This refactors pass handling to use the argument names, so it can be used
in a similar manner to `opt`. This may be slightly less efficient than the
previous version, but it is much easier to maintain.
It also adds in the ability to specify a custom pipeline on the command
line, this overrides the normal passes, however. This should completely
close #2396 .
2013-05-29 20:08:20 +12: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
Alex Crichton
b04c40bb1c
Silence various warnings throughout test modules
2013-05-28 15:27:35 -05:00
Patrick Walton
f3723cf7c4
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
2013-05-22 21:57:07 -07:00
Brian Anderson
474d9983be
rustllvm: Use target alignment for atomic load/store
2013-05-20 17:28:06 -07:00
Corey Richardson
808c5b8d4e
Test fixes, use LLVMConstFCmp in ConstFCmp
2013-05-19 22:09:32 -04:00
Corey Richardson
b97642758f
Fix LLVMConst{I,F}Cmp
2013-05-19 22:09:32 -04:00
Corey Richardson
e42fcb958c
Implement unimplemented const binops
2013-05-19 22:09:32 -04:00
James Miller
a289dcd187
Fix AtomicLoad builder code
2013-05-17 14:48:24 +12:00
Björn Steinbrink
bdc182cc41
Use static string with fail!() and remove fail!(fmt!())
...
fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
2013-05-14 16:36:23 +02:00
Matthijs Hofstra
852af346d3
Tidy
2013-05-13 13:33:34 +02:00