- Jan 26, 2010
-
-
Evan Cheng authored
llvm-svn: 94490
-
Chris Lattner authored
entries with @GOTOFF whih is EK_GPRel32BlockAddress. llvm-svn: 94474
-
- Jan 25, 2010
-
-
Chris Lattner authored
even on x86-32/elf which uses a GOT. llvm-svn: 94439
-
- Jan 24, 2010
-
-
Mon P Wang authored
the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. llvm-svn: 94338
-
- Jan 23, 2010
-
-
Eric Christopher authored
stack may be misaligned. Update test accordingly. Patch by Evan Cheng! llvm-svn: 94291
-
- Jan 15, 2010
-
-
Dan Gohman authored
llvm-svn: 93563
-
- Jan 11, 2010
-
-
Benjamin Kramer authored
- getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. llvm-svn: 93161
-
- Jan 09, 2010
-
-
http://llvm.org/PR5729Jeffrey Yasskin authored
R11, and then asserting that the target was in R9. Since R9 isn't reserved for the target anymore, and is used as an argument, this patch changes the assertion. llvm-svn: 93065
-
Evan Cheng authored
Fix a critical bug in 64-bit atomic operation lowering for 32-bit. The results of the cmpxchg8b instructions are being thrown away when it branches back to the top of the checking loop. This means the loop always compares against the old value and this can result in a dead lock. llvm-svn: 93028
-
- Jan 08, 2010
-
-
Evan Cheng authored
llvm-svn: 93020
-
- Jan 07, 2010
-
-
Evan Cheng authored
Fix a minor regression from my dag combiner changes. One more place which needs to look pass truncates. llvm-svn: 92885
-
- Jan 06, 2010
-
-
Evan Cheng authored
(OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. llvm-svn: 92849
-
- Jan 05, 2010
-
-
Benjamin Kramer authored
llvm-svn: 92771
-
Benjamin Kramer authored
llvm-svn: 92760
-
Evan Cheng authored
llvm-svn: 92694
-
- Jan 04, 2010
-
-
Evan Cheng authored
(or (x << c) | (y >> (64 - c))) ==> (shld64 x, y, c) The isel patterns may not catch all the cases if general dag combine has reduced width of source operands. llvm-svn: 92513
-
Dan Gohman authored
lets the test-elimination work in more conditional-move cases. llvm-svn: 92508
-
- Dec 29, 2009
-
-
Benjamin Kramer authored
llvm-svn: 92265
-
- Dec 22, 2009
-
-
Bill Wendling authored
return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
-
- Dec 17, 2009
-
-
Ken Dyck authored
incrementing the simple value type of the 16-bit type, which would give the wrong type if an intemediate MVT (such as i24) were introduced. llvm-svn: 91602
-
- Dec 16, 2009
-
-
Evan Cheng authored
llvm-svn: 91489
-
- Dec 15, 2009
-
-
Evan Cheng authored
llvm-svn: 91405
-
Evan Cheng authored
llvm-svn: 91381
-
Dan Gohman authored
llvm-svn: 91362
-
- 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
-
- 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
-
- Nov 30, 2009
-
-
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 24, 2009
-
-
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 21, 2009
-
-
Devang Patel authored
llvm-svn: 89536
-
Dan Gohman authored
and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506
-
- 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
-
- Nov 12, 2009
-
-
David Greene authored
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
-
Benjamin Kramer authored
StringsEqualNoCase (from StringExtras.h) to it. llvm-svn: 87020
-
- Nov 08, 2009
-
-
Nate Begeman authored
1. rename the movhp patfrag to movlhps, since thats what it actually matches 2. eliminate the bogus movhps load and store patterns, they were incorrect. The load transforms are already handled (correctly) by shufps/unpack. 3. revert a recent test change to its correct form. llvm-svn: 86415
-
- Nov 07, 2009
-
-
Kenneth Uildriks authored
Add code to check at SelectionDAGISel::LowerArguments time to see if return values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers llvm-svn: 86324
-
- Oct 30, 2009
-
-
Dan Gohman authored
llvm-svn: 85557
-
- Oct 28, 2009
-
-
Evan Cheng authored
llvm-svn: 85361
-