summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT
Commit message (Collapse)AuthorAgeFilesLines
* Make JIT::runFunction handle functions with non-C calling conventions.Chris Lattner2008-11-231-0/+1
| | | | llvm-svn: 59904
* Implement support for JIT exceptions on X86_64. Relative offsets areNicolas Geoffray2008-11-181-61/+27
| | | | | | | encoded on 32 bytes, and the personality function is not encoded as relative. llvm-svn: 59516
* Always emit a function pointer as a pointer to the function stub (if there ↵Evan Cheng2008-11-131-1/+20
| | | | | | is one). This makes it possible to compare function pointer values in lazy compilation mode. This fixes PR3043. llvm-svn: 59265
* Change binary dump format.Evan Cheng2008-11-121-9/+21
| | | | llvm-svn: 59119
* Comments and indentation.Evan Cheng2008-11-101-3/+3
| | | | llvm-svn: 59007
* Forgot these.Evan Cheng2008-11-101-19/+19
| | | | llvm-svn: 58952
* Remove a InvalidateInstructionCache call with incorrect size.Evan Cheng2008-11-081-4/+0
| | | | llvm-svn: 58898
* Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ↵Evan Cheng2008-11-081-6/+6
| | | | | | ptr. llvm-svn: 58897
* Rename isString -> isExternalSymbol; getString -> getExternalSymbol since ↵Evan Cheng2008-11-081-3/+3
| | | | | | these work on externsym machine relocations. llvm-svn: 58895
* More debug output.Evan Cheng2008-11-081-0/+2
| | | | llvm-svn: 58894
* More debug output.Evan Cheng2008-11-071-1/+3
| | | | llvm-svn: 58868
* Jump tables may be emitted by target.Evan Cheng2008-11-071-9/+13
| | | | llvm-svn: 58835
* Improve JIT debugging outputs format consistency.Evan Cheng2008-11-061-11/+14
| | | | llvm-svn: 58807
* Need a \n.Evan Cheng2008-11-061-1/+2
| | | | llvm-svn: 58788
* Undo 58778 but makes the binary dump prettier.Evan Cheng2008-11-051-3/+21
| | | | llvm-svn: 58782
* Remove debug output that's not really useful.Evan Cheng2008-11-051-13/+0
| | | | llvm-svn: 58778
* Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS XEvan Cheng2008-11-051-22/+22
| | | | | | indirect gv reference. Please don't call it lazy. llvm-svn: 58746
* For some targets, it's not possible to place GVs in the same memory buffer ↵Evan Cheng2008-11-041-0/+10
| | | | | | | | as the MachineCodeEmitter allocated memory. Code and data has different read / write / execution privilege requirements. This is a short term workaround. The current solution is for the JIT memory manager to manage code and data memory separately. llvm-svn: 58688
* Silence a compiler warning.Evan Cheng2008-11-031-1/+1
| | | | llvm-svn: 58598
* Revert errant deletion. The target needs to be able to specify that it ↵Jim Grosbach2008-10-301-0/+5
| | | | | | doesn't want the generic constant pool to be emitted. llvm-svn: 58475
* Let target resolve some relocation results.Evan Cheng2008-10-291-30/+23
| | | | llvm-svn: 58407
* Support for constant islands in the ARM JIT.Jim Grosbach2008-10-281-0/+9
| | | | | | | | | | | | | | | | Since the ARM constant pool handling supercedes the standard LLVM constant pool entirely, the JIT emitter does not allocate space for the constants, nor initialize the memory. The constant pool is considered part of the instruction stream. Likewise, when resolving relocations into the constant pool, a hook into the target back end is used to resolve from the constant ID# to the address where the constant is stored. For now, the support in the ARM emitter is limited to 32-bit integer. Future patches will expand this to the full range of constants necessary. llvm-svn: 58338
* Support for allocation of TLS variables in the JIT. Allocation of a globalNicolas Geoffray2008-10-252-1/+26
| | | | | | | | variable is moved to the execution engine. The JIT calls the TargetJITInfo to allocate thread local storage. Currently, only linux/x86 knows how to allocate thread local global variables. llvm-svn: 58142
* fix a tricky bug in the JIT global variable emitter, that was triggered when ↵Nuno Lopes2008-10-212-6/+40
| | | | | | JITing a variable independently of a function. This lead to sharing memory memory between functions and GVs thus changing the value of a GV could change the code in execution. more details on the ML. llvm-svn: 57900
* Revert r57340 move guard mutex in getPointerToFunction as this can causeMon P Wang2008-10-101-2/+2
| | | | | | deadlock issues with java llvm-svn: 57356
* Moved guard mutex upwards to guard materializing a functionMon P Wang2008-10-101-3/+3
| | | | | | in getPointerToFunction llvm-svn: 57340
* Add <cstdio> include where needed by gcc-4.4.Duncan Sands2008-10-081-0/+1
| | | | | | Patch by Samuel Tardieu. llvm-svn: 57291
* Unbreak build.Daniel Dunbar2008-10-031-18/+18
| | | | llvm-svn: 57017
* On Darwin ARM, memory needs special handling to do JIT. This patch expandsJim Grosbach2008-10-032-1/+26
| | | | | | | this handling to work properly for modifying stub functions, relocations back to entry points after JIT compilation, etc.. llvm-svn: 57013
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-1/+1
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* Acquire the lock only when necessary. More precisely, do not acquireNicolas Geoffray2008-10-031-10/+22
| | | | | | the lock when calling a method which may materialize the llvm::Function. llvm-svn: 56995
* Add DisableGVCompilation which forces the JIT to assert when it tries to ↵Evan Cheng2008-09-241-0/+4
| | | | | | allocate space for a GlobalVariable. llvm-svn: 56557
* Initial support for the CMake build system.Oscar Fuentes2008-09-221-0/+11
| | | | llvm-svn: 56419
* Preliminary support for systems which require changing JIT memory regions ↵Evan Cheng2008-09-182-0/+7
| | | | | | privilege from read / write to read / executable. llvm-svn: 56303
* Make safer variant of alias resolution routine to be defaultAnton Korobeynikov2008-09-091-1/+1
| | | | llvm-svn: 56005
* MMI may be null.Evan Cheng2008-09-021-1/+3
| | | | llvm-svn: 55626
* Add support for JIT exceptions on Darwin. Since we're dealing with libgcc,Nicolas Geoffray2008-08-281-2/+135
| | | | | | | whose darwin code was written after the ability to dynamically register frames, we need to do special hacks to make things work. llvm-svn: 55507
* Get rid of a couple of dynamic_cast.Evan Cheng2008-08-201-4/+10
| | | | llvm-svn: 55022
* Update the JIT exception writer to better mimic the codegen exception writer.Nicolas Geoffray2008-08-191-11/+10
| | | | | | | Also skip indirect encoding for platforms that ask for one: we direclty write an address, not a pointer to the address. llvm-svn: 54987
* Register the frame register function when allocating the JIT,Nicolas Geoffray2008-08-181-5/+5
| | | | | | so that lli works out of the box with -enable-eh. llvm-svn: 54920
* Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. ↵Anton Korobeynikov2008-08-161-40/+39
| | | | | | This makes JIT asmprinter-free. llvm-svn: 54843
* Some fixes for x86-64 JIT. Make it use small codeDale Johannesen2008-08-111-0/+13
| | | | | | | | | | | | model, except for external calls; this makes addressing modes PC-relative. Incomplete. The assertion at the top of Emitter::runOnMachineFunction was obviously bogus (always true) so I removed it. If someone knows what the correct test should be to cover all the various targets, please fix. llvm-svn: 54656
* Add new parameter Fast to createJIT to enable the fast codegen path.Evan Cheng2008-08-083-10/+12
| | | | llvm-svn: 54523
* Rewrite JIT handling of GlobalVariables so theyDale Johannesen2008-08-073-23/+177
| | | | | | | | | | | | | | are allocated in the same buffer as the code, jump tables, etc. The default JIT memory manager does not handle buffer overflow well. I didn't introduce this and I'm not attempting to fix it here, but it is more likely to be hit now since we're putting more stuff in the buffer. This affects one test that I know of so far, MultiSource/Benchmarks/NPB-serial/is. llvm-svn: 54442
* Trim #includes.Dan Gohman2008-08-051-1/+0
| | | | llvm-svn: 54350
* Fix for PR2578. Do not split off a block whose size is less than ↵Evan Cheng2008-07-291-0/+3
| | | | | | FreeRangeHeader::getMinBlockSize(). Patch by Damien. llvm-svn: 54152
* Use empty() instead of size().Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53178
* Correct a comment.Dan Gohman2008-07-031-1/+1
| | | | llvm-svn: 53064
* Prune a few dependencies on MachineFunction.h.Dan Gohman2008-07-011-1/+0
| | | | llvm-svn: 52976
* Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminatingDan Gohman2008-07-011-2/+2
| | | | | | | | | | | | | | | | the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. llvm-svn: 52943
OpenPOWER on IntegriCloud