- May 04, 2008
-
-
Evan Cheng authored
Select vector shift with non-immediate i32 shift amount operand by first moving the operand into the right register. llvm-svn: 50619
-
- May 03, 2008
-
-
Evan Cheng authored
Add separate intrinsics for MMX / SSE shifts with i32 integer operands. This allow us to simplify the horribly complicated matching code. llvm-svn: 50601
-
- May 02, 2008
-
-
Evan Cheng authored
llvm-svn: 50578
-
Evan Cheng authored
llvm-svn: 50575
-
Evan Cheng authored
Not safe folding a load + FsXORPSrr into FsXORPSrm. It's loading a FR64 value but the load folding variant expects a 16-byte aligned address. llvm-svn: 50574
-
- Apr 30, 2008
-
-
Arnold Schwaighofer authored
Move platform independent code (lowering of possibly overwritten arguments, check for tail call optimization eligibility) from target X86ISelectionLowering.cpp to TargetLowering.h and SelectionDAGISel.cpp. Initial PowerPC tail call implementation: Support ppc32 implemented and tested (passes my tests and test-suite llvm-test). Support ppc64 implemented and half tested (passes my tests). On ppc tail call optimization is performed if caller and callee are fastcc call is a tail call (in tail call position, call followed by ret) no variable argument lists or byval arguments option -tailcallopt is enabled Supported: * non pic tail calls on linux/darwin * module-local tail calls on linux(PIC/GOT)/darwin(PIC) * inter-module tail calls on darwin(PIC) If constraints are not met a normal call will be emitted. A test checking the argument lowering behaviour on x86-64 was added. llvm-svn: 50477
-
- Apr 28, 2008
-
-
Dan Gohman authored
memcpy/memset expansion. It was a bug for the SVOffset value to be used in the actual address calculations. llvm-svn: 50359
-
Anton Korobeynikov authored
llvm-svn: 50342
-
Anton Korobeynikov authored
llvm-svn: 50325
-
Anton Korobeynikov authored
llvm-svn: 50324
-
- Apr 27, 2008
-
-
Chris Lattner authored
- Make targetlowering.h fit in 80 cols. - Make LowerAsmOperandForConstraint const. - Make lowerXConstraint -> LowerXConstraint - Make LowerXConstraint return a const char* instead of taking a string byref. llvm-svn: 50312
-
- Apr 25, 2008
-
-
Evan Cheng authored
llvm-svn: 50292
-
Evan Cheng authored
llvm-svn: 50291
-
Evan Cheng authored
llvm-svn: 50289
-
Evan Cheng authored
llvm-svn: 50278
-
Evan Cheng authored
llvm-svn: 50260
-
Evan Cheng authored
- Add comments. llvm-svn: 50259
-
Evan Cheng authored
On Darwin / Linux x86-32, v8i8, v4i16, v2i32 values are passed in MM[0-2]. On Darwin / Linux x86-32, v1i64 values are passed in memory. On Darwin x86-64, v8i8, v4i16, v2i32 values are passed in XMM[0-7]. On Darwin x86-64, v1i64 values are passed in 64-bit GPRs. llvm-svn: 50257
-
Chris Lattner authored
idea what this code (findNonImmUse) does, so I'm only guessing that this is the right thing. It would be really really nice if this had comments and perhaps switched to SmallPtrSet (hint hint) :) This fixes rdar://5886601, a crash on gcc.target/i386/sse4_1-pblendw.c llvm-svn: 50252
-
Evan Cheng authored
Fix bug in x86 memcpy / memset lowering. If there are trailing bytes not handled by rep instructions, a new memcpy / memset is introduced for them. However, since source / destination addresses are already adjusted, their offsets should be zero. llvm-svn: 50239
-
- Apr 23, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 50169
-
Anton Korobeynikov authored
llvm-svn: 50168
-
Anton Korobeynikov authored
Be over-conservative: scan for all used virtual registers and calculate maximal stack alignment in assumption, that there will be spill of vector register. llvm-svn: 50167
-
Anton Korobeynikov authored
llvm-svn: 50166
-
Anton Korobeynikov authored
llvm-svn: 50163
-
Anton Korobeynikov authored
llvm-svn: 50162
-
Anton Korobeynikov authored
Eastimate required stack alignment early, so we can decide, whether we will need frame pointer or not llvm-svn: 50161
-
Anton Korobeynikov authored
llvm-svn: 50159
-
Anton Korobeynikov authored
llvm-svn: 50158
-
Anton Korobeynikov authored
llvm-svn: 50157
-
Anton Korobeynikov authored
llvm-svn: 50156
-
Anton Korobeynikov authored
llvm-svn: 50155
-
Anton Korobeynikov authored
llvm-svn: 50154
-
Anton Korobeynikov authored
llvm-svn: 50153
-
Anton Korobeynikov authored
llvm-svn: 50152
-
- Apr 22, 2008
-
-
Dan Gohman authored
argument. The x86-64 ABI requires the incoming value of %rdi to be copied to %rax on exit from a function that is returning a large C struct. Also, add a README-X86-64 entry detailing the missed optimization opportunity and proposing an alternative approach. llvm-svn: 50075
-
- Apr 21, 2008
-
-
Dan Gohman authored
llvm-svn: 50053
-
Chris Lattner authored
llvm-svn: 50029
-
Nicolas Geoffray authored
llvm-svn: 50007
-
- Apr 20, 2008
-
-
Chris Lattner authored
llvm-svn: 49986
-