about summary refs log tree commit diff
path: root/src/rustllvm/rustllvm.def.in
AgeCommit message (Collapse)AuthorLines
2013-08-20auto merge of #8328 : alexcrichton/rust/llvm-head, r=brsonbors-0/+1
The first commit message is pretty good, but whomever reviews this should probably also at least glance at the changes I made in LLVM. I basically reorganized our pending patch queue to be a bit more organized and clearer in what needs to go where. After this, our queue would be: * Add the `no-split-stack` attribute * Add the `fixedstacksegment` attribute * Add split-stacks for arm android * Add split-stacks for arm linux * Add split stacks for mips Then there's a patch which I added to get rust to build at all on LLVM-head, and I'm not quite sure why it's there, but nothing seems to be crashing for now! (famous last words). Otherwise, I just updated code to reflect the changes I made in LLVM with the only major change being the advent of the new `no_split_stack` attribute. This is work towards #1226, but someone more familiar with the code should probably actually assign the attribute to the appropriate functions. Also as a bonus, I've verified that this closes #5774
2013-08-20Fix LLVM compilation issues and use the new attrsAlex Crichton-0/+1
This implements #[no_split_stack] and also changes #[fast_ffi] to using the new "fixedstacksegment" string attribute instead of integer attribute.
2013-08-16debuginfo: Generate template type parameters for generic functions.Michael Woerister-0/+1
Conflicts: src/librustc/lib/llvm.rs src/librustc/middle/trans/debuginfo.rs src/rustllvm/RustWrapper.cpp src/rustllvm/rustllvm.def.in
2013-08-09Implement an `address_insignificant` attributeAlex Crichton-0/+1
This can be applied to statics and it will indicate that LLVM will attempt to merge the constant in .data with other statics. I have preliminarily applied this to all of the statics generated by the new `ifmt!` syntax extension. I compiled a file with 1000 calls to `ifmt!` and a separate file with 1000 calls to `fmt!` to compare the sizes, and the results were: fmt 310k ifmt (before) 529k ifmt (after) 202k This now means that ifmt! is both faster and smaller than fmt!, yay!
2013-07-28Add an atomic fence intrinsicJames Miller-0/+1
2013-07-21Avoid blocks for static allocas and loading the closure environmentBjörn Steinbrink-0/+1
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-19debuginfo: Fixed some merge falloutMichael Woerister-0/+3
2013-06-19rustc: Dispose of LLVM passes in test casesBrian Anderson-0/+1
2013-06-17Fixed remaining issues to pass debug-test/* tests.Vadim Chugunov-0/+1
Made debugger scripts source line insensitive.
2013-06-17Made the while DebugContext mutable, not just created_* hashesVadim Chugunov-17/+18
Disabled create_arg
2013-06-17Use DIBuilder in debuginfoVadim Chugunov-0/+17
2013-06-13Revert "Revert "Have JIT execution take ownership of the LLVMContextRef""Alex Crichton-1/+3
This reverts commit 19adece68b00bd1873499cca6f1537750608d769.
2013-06-13Revert "Revert "Remove all usage of the global LLVMContextRef""Alex Crichton-2/+1
This reverts commit 541c657a738006d78171aa261125a6a46f283b35.
2013-06-13Revert "Remove all usage of the global LLVMContextRef"Brian Anderson-1/+2
This reverts commit 779191cd4b8719e8efdf69fb6da93e2a8905ca1d. Conflicts: src/librustc/middle/trans/base.rs src/librustc/middle/trans/common.rs
2013-06-13Revert "Have JIT execution take ownership of the LLVMContextRef"Brian Anderson-3/+1
This reverts commit 5c5095d25e3652c434c8d4ec178e6844877e3c2d. Conflicts: src/librusti/rusti.rc
2013-06-10Have JIT execution take ownership of the LLVMContextRefAlex Crichton-1/+3
Also stop leaking the ExecutionEngine created for jit code by forcibly disposing of it after the JIT code has finished executing
2013-06-10Remove all usage of the global LLVMContextRefAlex Crichton-2/+1
This allows parallel usage of the rustc library
2013-05-29Further refactor optimization pass handlingJames Miller-98/+2
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-29Remove extraneous defs from export fileJames Miller-3/+0
2013-05-29Refactor optimization pass handling.James Miller-0/+102
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-12Adds atomic_load, atomic_load_acq, atomic_store, and atomic_store_rel ↵Matthijs Hofstra-0/+2
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-04-10rustllvm: followup latest LLVMYoung-il Choi-2/+0
2013-03-12Parse inline assembly.Luqman Aden-0/+1
2013-03-03There is no function in LLVM called LLVMInitializeMipsAsmLexerBrian Anderson-1/+0
2013-03-03rustc: MIPS32 supportJyun-Yan You-0/+7
2013-01-13Support ARM and Androidkyeongwoon-7/+7
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
2012-10-21rustc: add new intrinsics - atomic_cxchg{_acq,_rel}Luqman Aden-0/+1
2012-09-27jit: Separate JIT execution into two functions and load crates before main ↵Zack Corr-2/+3
lookup
2012-08-31jit: Add passes and cleanup codeZack Corr-2/+1
2012-08-31jit: Add custom memory manager (still segfaulting)Zack Corr-1/+3
2012-08-31Add experimental JIT compilerZack Corr-0/+2
2012-07-25Added debug flag to enable LLVM debug output.Elliott Slaughter-0/+1
2012-07-24Remove rustllvm functions which have moved upstream.Elliott Slaughter-1/+0
2012-07-24Only initialize targets that are actually supported / linked to in RustWrapperZack Corr-0/+2
2012-06-29Adding a bunch of atomic intrinsics.Eric Holk-0/+1
Adding a test cases for the atomic intrinsics.
2012-03-14Upgrade LLVM and add fix to PE/COFF relocation overflow handling.Graydon Hoare-1/+0
2011-12-18Remove rebase error.Josh Matthews-3/+0
2011-12-18Add debug info for local vars, basic fundamental types, and lexical blocks, ↵Josh Matthews-1/+6
along with source line information generation for individual instructions.
2011-12-18Generate basic debug info for files, functions and compile units.Josh Matthews-0/+1
2011-12-04Upgrade LLVM to svn revision 145779Brian Anderson-35/+0
This pulls in commits 145765 & 145766, which are required for split stacks.
2011-11-25rustc: Fall back to intrinsics.ll if we can't parse the bcBrian Anderson-0/+1
This will allow us to transition to the new bitcode format.
2011-11-16temp workaround for failure to pass ulonglong successfullyNiko Matsakis-0/+1
2011-11-15rustllvm: Add a GetOrInsertFunction wrapperHaitao Li-0/+1
Fixes issue #1161 Test-case-by: Brian Anderson <banderson@mozilla.com> Signed-off-by: Haitao Li <lihaitao@gmail.com>
2011-11-07rustc: Add support of generating LLVM assemblyHaitao Li-0/+1
rustc generates output files in LLVM bitcode format if "--emit-llvm" option is given. When used with the "-S" option, rustc generates LLVM intermediate language assembly files. Fixes Issue #476
2011-10-31rustc: Enable segmented stacks in LLVM when --stack-growth is onPatrick Walton-0/+1
2011-09-11Add Rust definitions for new LLVM EH instructionsBrian Anderson-0/+4
Issue #236
2011-08-11Revert "Add missing functions to rustllvm.def.in"Brian Anderson-3/+0
This reverts commit 1bea273974c3c9570f76fd9c4a4a985ca05bd60f. Looks like this is not actually necessary. Hard to tell since the tinderboxes are falling behind.
2011-08-11Add missing functions to rustllvm.def.inBrian Anderson-0/+3
2011-08-11Use the new C API for PassManagerBuilder.Rafael Ávila de Espíndola-5/+10
2011-08-11Update for llvm api change.Rafael Ávila de Espíndola-2/+0