Luqman Aden
fcfd6e7c79
rustc: Add --target-cpu flag to select a more specific processor instead of the default, 'generic'.
2013-08-10 17:03:43 -04:00
bors
e70aac572a
auto merge of #8270 : dotdash/rust/ret_alloca_elim, r=pcwalton
...
When there is only a single store to the ret slot that dominates the
load that gets the value for the "ret" instruction, we can elide the
ret slot and directly return the operand of the dominating store
instruction. This is the same thing that clang does, except for a
special case that doesn't seem to affect us.
Fixes #8238
2013-08-10 04:44:13 -07:00
Björn Steinbrink
4b74b8dca4
Elide unnecessary ret slot allocas
...
When there is only a single store to the ret slot that dominates the
load that gets the value for the "ret" instruction, we can elide the
ret slot and directly return the operand of the dominating store
instruction. This is the same thing that clang does, except for a
special case that doesn't seem to affect us.
Fixes #8238
2013-08-10 11:04:50 +02:00
Erick Tryzelaar
56730c094c
Merge remote-tracking branch 'remotes/origin/master' into remove-str-trailing-nulls
2013-08-08 19:27:03 -07:00
Erick Tryzelaar
1e490813b0
core: option.map_consume -> option.map_move
2013-08-07 08:52:09 -07:00
Erick Tryzelaar
3c94b5044c
Merge remote-tracking branch 'remotes/origin/master' into str-remove-null
2013-08-04 16:23:41 -07:00
Erick Tryzelaar
3102b1797e
std: replace str::as_c_str with std::c_str
2013-08-04 14:13:17 -07:00
Alex Crichton
60e9507086
Integrate new arm patch and fix an LLVM bug
...
Thanks @luqama!
2013-08-04 10:58:23 -07:00
Alex Crichton
bb93930575
Add a workaround for 8199 for now
2013-08-04 10:58:23 -07:00
Alex Crichton
4ace3b7434
Fix setting the fixed stack segment attribute on LLVM functions
...
At the same time create a more robust wrapper to try to prevent this type of
issue from cropping up in the future.
2013-08-04 10:58:23 -07:00
Alex Crichton
8d29367650
Fix build issues once LLVM has been upgraded
...
* LLVM now has a C interface to LLVMBuildAtomicRMW
* The exception handling support for the JIT seems to have been dropped
* Various interfaces have been added or headers have changed
2013-08-04 10:58:23 -07:00
Patrick Walton
9457ebee55
librustc: Disallow "unsafe" for external functions
2013-08-02 21:57:59 -07:00
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