- Aug 29, 2012
-
-
Benjamin Kramer authored
llvm-svn: 162843
-
- Aug 21, 2012
-
-
Richard Smith authored
no cost to using memcpy here: the fixed code is optimized by LLVM to perfect machine code. llvm-svn: 162311
-
- Feb 13, 2012
-
-
Ahmed Charles authored
- Use unsigned literals when the desired result is unsigned. This mostly allows unsigned/signed mismatch warnings to be less noisy even if they aren't on by default. - Remove misplaced llvm_unreachable. - Add static to a declaration of a function on MSVC x86 only. - Change some instances of calling a static function through a variable to simply calling that function while removing the unused variable. llvm-svn: 150364
-
- Jan 20, 2012
-
-
David Blaikie authored
llvm-svn: 148578
-
- Dec 03, 2011
-
-
Nick Lewycky authored
the same value) to this variable. This code could be refactored, but it doesn't matter since the old JIT is going away. Add tsan annotations to ignore the race. llvm-svn: 145745
-
- Feb 05, 2011
-
-
NAKAMURA Takumi authored
llvm-svn: 124947
-
NAKAMURA Takumi authored
llvm-svn: 124946
-
- Nov 29, 2010
-
-
Michael J. Spencer authored
llvm-svn: 120298
-
- Oct 23, 2010
-
-
Chandler Carruth authored
until other LLVM projects using these are cleaned up. llvm-svn: 117200
-
- Mar 15, 2010
-
-
Jeffrey Yasskin authored
to re-instrument the code. We depend on the system valgrind.h to avoid adding a new license. llvm-svn: 98529
-
- Feb 08, 2010
-
-
Torok Edwin authored
Thanks to Kristaps Straupe for noticing the bug. llvm-svn: 95537
-
- Jan 05, 2010
-
-
David Greene authored
llvm-svn: 92651
-
- Dec 15, 2009
-
-
Jeffrey Yasskin authored
remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. llvm-svn: 91464
-
- Nov 24, 2009
-
-
Jeffrey Yasskin authored
way for each TargetJITInfo subclass to allocate its own stubs. This means stubs aren't as exactly-sized anymore, but it lets us get rid of TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC support the eager JIT, fixing http://llvm.org/PR4816. * Rename the JITEmitter's stub creation functions to describe the kind of stub they create. So far, all of them create lazy-compilation stubs, but they sometimes get used when far-call stubs are needed. Fixing http://llvm.org/PR5201 will involve fixing this. llvm-svn: 89715
-
- Nov 23, 2009
-
-
Jeffrey Yasskin authored
It's probably better in the long run to replace the indirect-GlobalVariable system. That'll be done after a subsequent patch. llvm-svn: 89708
-
- Nov 16, 2009
-
-
Jeffrey Yasskin authored
The large code model is documented at http://www.x86-64.org/documentation/abi.pdf and says that calls should assume their target doesn't live within the 32-bit pc-relative offset that fits in the call instruction. To do this, we turn off the global-address->target-global-address conversion in X86TargetLowering::LowerCall(). The first attempt at this broke the lazy JIT because it can separate the movabs(imm->reg) from the actual call instruction. The lazy JIT receives the address of the movabs as a relocation and needs to record the return address from the call; and then when that call happens, it needs to patch the movabs with the newly-compiled target. We could thread the call instruction into the relocation and record the movabs<->call mapping explicitly, but that seems to require at least as much new complication in the code generator as this change. To fix this, we make lazy functions _always_ go through a call stub. You'd think we'd only have to force lazy calls through a stub on difficult platforms, but that turns out to break indirect calls through a function pointer. The right fix for that is to distinguish between calls and address-of operations on uncompiled functions, but that's complex enough to leave for someone else to do. Another attempt at this defined a new CALL64i pseudo-instruction, which expanded to a 2-instruction sequence in the assembly output and was special-cased in the X86CodeEmitter's emitInstruction() function. That broke indirect calls in the same way as above. This patch also removes a hack forcing Darwin to the small code model. Without far-call-stubs, the small code model requires things of the JITMemoryManager that the DefaultJITMemoryManager can't provide. Thanks to echristo for lots of testing! llvm-svn: 88984
-
- Sep 15, 2009
-
-
Dale Johannesen authored
interrupt instruction, which shouldn't arise any other way). 0xcd is also used by JITMemoryManager to initialize the buffer to garbage, which means it could appear following a noreturn call even when that is not a stub, confusing X86CompilationCallback2. PR 4929. llvm-svn: 81888
-
- Sep 06, 2009
-
-
Anton Korobeynikov authored
dependent. Hopefully, this will fix PR3801. llvm-svn: 81132
-
- Sep 03, 2009
-
-
Evan Cheng authored
llvm-svn: 80885
-
Evan Cheng authored
X86JITInfo::getLazyResolverFunction() should not read cpu id to determine whether sse is available. Just use consult subtarget. No functionality changes. llvm-svn: 80880
-
- Aug 28, 2009
-
-
Anton Korobeynikov authored
Some other minor win64 fixes as well. Patch by Michael Beck! llvm-svn: 80370
-
- Aug 24, 2009
-
-
Chris Lattner authored
llvm-svn: 79873
-
- Aug 20, 2009
-
-
Reid Kleckner authored
llvm-svn: 79494
-
- Aug 05, 2009
-
-
Bruno Cardoso Lopes authored
for ELF to work. 2) RIP addressing: Use SIB bytes for absolute relocations where RegBase=0, IndexReg=0. 3) The JIT can get the real address of cstpools and jmptables during code emission, fix that for object code emission llvm-svn: 78129
-
- Aug 03, 2009
-
-
Bill Wendling authored
- Tidy up some headers. llvm-svn: 77929
-
- Jul 14, 2009
-
-
Torok Edwin authored
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
-
- Jul 12, 2009
-
-
Torok Edwin authored
llvm-svn: 75416
-
- Jul 11, 2009
-
-
Torok Edwin authored
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
-
- Jul 08, 2009
-
-
Torok Edwin authored
cerr+abort -> llvm_report_error assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included) llvm-svn: 75018
-
- May 30, 2009
-
-
Bruno Cardoso Lopes authored
JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray llvm-svn: 72631
-
- Feb 18, 2009
-
-
Nate Begeman authored
that has not been JIT'd yet, the callee is put on a list of pending functions to JIT. The call is directed through a stub, which is updated with the address of the function after it has been JIT'd. A new interface for allocating and updating empty stubs is provided. Add support for removing the ModuleProvider the JIT was created with, which would otherwise invalidate the JIT's PassManager, which is initialized with the ModuleProvider's Module. Add support under a new ExecutionEngine flag for emitting the infomration necessary to update Function and GlobalVariable stubs after JITing them, by recording the address of the stub and the name of the GlobalValue. This allows code to be copied from one address space to another, where libraries may live at different virtual addresses, and have the stubs updated with their new correct target addresses. llvm-svn: 64906
-
- Feb 06, 2009
-
-
Dan Gohman authored
addresses to symbols. llvm-svn: 63962
-
- Dec 10, 2008
-
-
Evan Cheng authored
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. llvm-svn: 60828
-
- Nov 10, 2008
-
-
Evan Cheng authored
llvm-svn: 58949
-
- Nov 08, 2008
-
-
Evan Cheng authored
llvm-svn: 58897
-
- Nov 05, 2008
-
-
Evan Cheng authored
indirect gv reference. Please don't call it lazy. llvm-svn: 58746
-
- Oct 25, 2008
-
-
Nicolas Geoffray authored
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
-
- Aug 13, 2008
-
-
Dale Johannesen authored
rather than the absolute address if the target is within range. llvm-svn: 54708
-
- Jul 16, 2008
-
-
Devang Patel authored
Mark function used by asm block as used, otherwise optimizer may not see the use and may delete the function. llvm-svn: 53692
-
Evan Cheng authored
llvm-svn: 53660
-