- Mar 19, 2009
-
-
Nate Begeman authored
in selectiondag patterns. This is required for the upcoming shuffle_vector rewrite, and as it turns out, cleans up a hack in the Alpha instruction info. llvm-svn: 67286
-
Bruno Cardoso Lopes authored
llvm-svn: 67280
-
- Mar 18, 2009
-
-
Chris Lattner authored
for pointing this out :) llvm-svn: 67212
-
Chris Lattner authored
llvm-svn: 67211
-
Chris Lattner authored
llvm-svn: 67210
-
Zhou Sheng authored
unused loads or bitcasts. llvm-svn: 67202
-
Zhou Sheng authored
If the instruction has no users, it is also not only used by debug info and should not be deleted. llvm-svn: 67194
-
Zhou Sheng authored
If I->use_empty(), this method should return false. llvm-svn: 67180
-
Mon P Wang authored
and expanding a bit convert (PR3711). In both cases, we extract the valid part of the widen vector and then do the conversion. llvm-svn: 67175
-
Chris Lattner authored
not safe in general because the immediate could be an arbitrary value that does not fit in a 32-bit pcrel displacement. Conservatively fall back to loading the value into a register and calling through it. We still do the optzn on X86-32. llvm-svn: 67142
-
Chris Lattner authored
an invoke instead of after the invoke (in its block), which is invalid. llvm-svn: 67139
-
Chris Lattner authored
it is not APInt clean, but even when it is it needs to be evaluated carefully to determine whether it is actually profitable. This fixes a crash on PR3806 llvm-svn: 67134
-
Rafael Espindola authored
Some architectures (like x86) don't require it. This fixes bug 3779. llvm-svn: 67132
-
- Mar 17, 2009
-
-
Daniel Dunbar authored
- Use for exceptional buffer conditions in raw_ostream:write to shave off a cycle or two. - Please rename if you have a better one. llvm-svn: 67103
-
Chris Lattner authored
size by the array amount as an i32 value instead of promoting from i32 to i64 then doing the multiply. Not doing this broke wrap-around assumptions that the optimizers (validly) made. The ultimate real fix for this is to introduce i64 version of alloca and remove mallocinst. This fixes PR3829 llvm-svn: 67093
-
Chris Lattner authored
llvm-svn: 67089
-
Scott Michel authored
Revert inadvertent mis-fix of fneg. llvm-svn: 67084
-
Sanjiv Gupta authored
llvm-svn: 67082
-
Gabor Greif authored
llvm-svn: 67080
-
Duncan Sands authored
(which produces "call L_f$stub" rather than "call f"). llvm-svn: 67079
-
Mon P Wang authored
vector shuffle mask. Forced the mask to be built using i32. Note: this will be irrelevant once vector_shuffle no longer takes a build vector for the shuffle mask. llvm-svn: 67076
-
Dan Gohman authored
llvm-svn: 67072
-
Dan Gohman authored
llvm-svn: 67071
-
Daniel Dunbar authored
under a single branch. Also, add a FIXME for formatted output. llvm-svn: 67069
-
Evan Cheng authored
Spiller may unfold load / mod / store instructions as an optimization when the would be loaded value is available in a register. It needs to check if it's legal to clobber the register. Also, the register can contain values of multiple spill slots, make sure to check all instead of just the one being unfolded. llvm-svn: 67068
-
Scott Michel authored
- Fix fabs, fneg for f32 and f64. - Use BuildVectorSDNode.isConstantSplat, now that the functionality exists - Continue to improve i64 constant lowering. Lower certain special constants to the constant pool when they correspond to SPU's shufb instruction's special mask values. This avoids the overhead of performing a shuffle on a zero-filled vector just to get the special constant when the memory load suffices. llvm-svn: 67067
-
Daniel Dunbar authored
a single character requires only one branch to follow slow path. - Never use a buffer when writing on an unbuffered stream. - Move default buffer size to header. llvm-svn: 67066
-
Dale Johannesen authored
llvm-svn: 67064
-
Daniel Dunbar authored
write as arguments. - Add raw_ostream::GetNumBytesInBuffer. - Privatize buffer pointers. - Get rid of slow and unnecessary code for writing out large strings. llvm-svn: 67060
-
- Mar 16, 2009
-
-
Daniel Dunbar authored
- Flush a known non-empty buffers; enforces the interface to flush_impl and kills off HandleFlush (which I saw no reason to be an inline method, Chris?). - Clarify invariant that flush_impl is only called with OutBufCur > OutBufStart. - This also cleary collects all places where we have to deal with the buffer possibly not existing. - A few more comments and fixing the unbuffered behavior remain in this commit sequence. llvm-svn: 67057
-
Daniel Dunbar authored
it is easy. llvm-svn: 67054
-
Daniel Dunbar authored
single characters writes outside of the fast path in raw_ostream.h llvm-svn: 67053
-
Bill Wendling authored
U test/CodeGen/X86/2009-03-13-PHIElimBug.ll D test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll U lib/CodeGen/PHIElimination.cpp r67049 was causing this failure: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784 Failed with exit(1) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll | llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl child process exited abnormally llvm-svn: 67051
-
Duncan Sands authored
how invokes are set up. The fix could be disturbed by register copies coming after the EH_LABEL, and also didn't behave quite right when it was the invoke result that was used in a phi node. Also (see new testcase) fix another phi elimination bug while there: register copies in the landing pad need to come after the EH_LABEL, because that's where execution branches to when unwinding. If they come before the EH_LABEL then they will never be executed... Also tweak the original testcase so it doesn't use a no-longer existing counter. The accumulated phi elimination changes fix two of seven Ada testsuite failures that turned up after landing pad critical edge splitting was turned off. So there's probably more to come. llvm-svn: 67049
-
Scott Michel authored
Incorporate Tilmann's 128-bit operation patch. Evidently, it gets the llvm-gcc bootstrap a bit further along. llvm-svn: 67048
-
Bruno Cardoso Lopes authored
This causes incorrect stack frame allocation when the last object is an array allocated on the stack which would lead the compiled program to run over its stack. Thanks to Gil Dogon llvm-svn: 67034
-
- Mar 15, 2009
-
-
Nick Lewycky authored
llvm-svn: 67025
-
Nick Lewycky authored
llvm-svn: 67023
-
- Mar 14, 2009
-
-
Owen Anderson authored
useful with it at the moment, but it will in the future. llvm-svn: 67012
-
Dan Gohman authored
shift constant expressions, and add support for folding vector shift constant expressions. This fixes PR3802. llvm-svn: 67010
-