- Dec 11, 2009
-
-
Dan Gohman authored
llvm-svn: 91158
-
Anton Korobeynikov authored
This is used in some weird cases like general dynamic TLS model. This fixes PR5723 llvm-svn: 91144
-
Evan Cheng authored
llvm-svn: 91104
-
- Dec 09, 2009
-
-
Evan Cheng authored
vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0> => vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1> iff ptr is 16-byte aligned (or can be made into 16-byte aligned). llvm-svn: 90984
-
Evan Cheng authored
llvm-svn: 90925
-
Evan Cheng authored
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. llvm-svn: 90922
-
- Dec 07, 2009
-
-
Dan Gohman authored
current form, it is too expensive in compile time. llvm-svn: 90781
-
- Dec 05, 2009
-
-
Dan Gohman authored
MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. llvm-svn: 90634
-
David Greene authored
Remove an unneeded include. llvm-svn: 90625
-
- Dec 04, 2009
-
-
David Greene authored
Have hasLoad/StoreFrom/ToStackSlot return the relevant MachineMemOperand. llvm-svn: 90608
-
- Dec 03, 2009
-
-
Chris Lattner authored
llvm-svn: 90370
-
Chris Lattner authored
Patch by Howard Hinnant! llvm-svn: 90365
-
- Dec 02, 2009
-
-
Jim Grosbach authored
No functionality change. llvm-svn: 90336
-
- Dec 01, 2009
-
-
Dan Gohman authored
llvm-svn: 90166
-
Dan Gohman authored
llvm-svn: 90165
-
- Nov 30, 2009
-
-
Bob Wilson authored
for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. llvm-svn: 90144
-
Mon P Wang authored
divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. llvm-svn: 90108
-
- Nov 25, 2009
-
-
Bob Wilson authored
it is definitely profitable to tail duplicate indirect branches for x86. This is likely to be true to various degrees for all modern x86 processors. llvm-svn: 89865
-
Daniel Dunbar authored
llvm-svn: 89850
-
- 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
-
Dan Gohman authored
Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. llvm-svn: 89711
-
- 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 21, 2009
-
-
Devang Patel authored
llvm-svn: 89536
-
Dan Gohman authored
llvm-svn: 89509
-
Dan Gohman authored
and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506
-
- Nov 20, 2009
-
-
Sean Callanan authored
Thanks to Daniel Dunbar for fixing clang intrinsics: http://llvm.org/viewvc/llvm-project?view=rev&revision=89499 llvm-svn: 89500
-
Sean Callanan authored
broke the Clang testsuite. llvm-svn: 89495
-
Sean Callanan authored
Also fixed the corresponding testcase, and the PALIGNR intrinsic (tested for correctness with llvm-gcc). llvm-svn: 89491
-
- Nov 17, 2009
-
-
Evan Cheng authored
llvm-svn: 89081
-
Evan Cheng authored
llvm-svn: 89076
-
Evan Cheng authored
llvm-svn: 89019
-
Evan Cheng authored
llvm-svn: 89011
-
- 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
-
Evan Cheng authored
- Check memoperand alignment instead of checking stack alignment. Most load / store folding instructions are not referencing spill stack slots. - Mark MOVUPSrm re-materializable. llvm-svn: 88974
-
- Nov 14, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 88800
-
Daniel Dunbar authored
- This is an initial step towards -march=native support in Clang, and towards eliminating host dependencies in the targets. See PR5389. - Patch by Roman Divacky! llvm-svn: 88768
-
Evan Cheng authored
- If destination is a physical register and it has a subreg index, use the sub-register instead. This fixes PR5423. llvm-svn: 88745
-
- Nov 13, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 88705
-
David Greene authored
Move DebugInfo checks into EmitComments and remove them from target-specific AsmPrinters. Not all comments need DebugInfo. Re-enable the line numbers comment test. llvm-svn: 88697
-
David Goodwin authored
llvm-svn: 88682
-