- May 14, 2008
-
-
Evan Cheng authored
llvm-svn: 51131
-
Evan Cheng authored
llvm-svn: 51126
-
Evan Cheng authored
llvm-svn: 51123
-
Evan Cheng authored
llvm-svn: 51115
-
Dan Gohman authored
SETOEQ, is it does with (SETEQ & SETULE), map it to SETEQ. llvm-svn: 51112
-
Dan Gohman authored
llvm-svn: 51089
-
- May 13, 2008
-
-
Evan Cheng authored
Instead of a vector load, shuffle and then extract an element. Load the element from address with an offset. pshufd $1, (%rdi), %xmm0 movd %xmm0, %eax => movl 4(%rdi), %eax llvm-svn: 51026
-
Dan Gohman authored
several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
-
Nate Begeman authored
Teach X86 a few more vsetcc patterns. Custom lowering for unsupported ones is next. llvm-svn: 51009
-
Evan Cheng authored
Xform bitconvert(build_pair(load a, load b)) to a single load if the load locations are at the right offset from each other. llvm-svn: 51008
-
- May 12, 2008
-
-
Evan Cheng authored
llvm-svn: 50991
-
Nate Begeman authored
This is necessary to unbreak the build. llvm-svn: 50988
-
Dan Gohman authored
llvm-svn: 50967
-
- May 08, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 50836
-
- May 07, 2008
-
-
Dan Gohman authored
llvm-svn: 50793
-
Anton Korobeynikov authored
llvm-svn: 50775
-
- May 06, 2008
-
-
Dan Gohman authored
llvm-svn: 50696
-
Dan Gohman authored
ComputeMaskedBits handles, just use a 'default:'. This avoids TargetLowering's list getting out of date with SelectionDAG's. llvm-svn: 50693
-
Dan Gohman authored
ComputeMaskedBits. llvm-svn: 50692
-
- May 05, 2008
-
-
Mon P Wang authored
llvm-svn: 50663
-
- May 02, 2008
-
-
Dan Gohman authored
llvm-svn: 50591
-
Dan Gohman authored
llvm-svn: 50562
-
Dan Gohman authored
llvm-svn: 50561
-
Dan Gohman authored
llvm-svn: 50558
-
- May 01, 2008
-
-
Chris Lattner authored
ffastmath mode. This fixes rdar://5902801, a miscompilation of gcc.dg/builtins-8.c. Bill, please pull this into Tak. llvm-svn: 50523
-
- 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
-
Scott Michel authored
DAG.UpdateNodeOperands() is called before (not after) the call to TLI.LowerOperation(). llvm-svn: 50461
-
- Apr 29, 2008
-
-
Roman Levenstein authored
This removes the existing bottleneck related to the removal of elements from the middle of the queue. Also fixes a subtle bug in ScheduleDAGRRList::CapturePred: It was updating the state of the SUnit before removing it. As a result, the comparison operators were working incorrectly and this SUnit could not be removed from the queue properly. Reviewed by Evan and Dan. Approved by Dan. llvm-svn: 50412
-
Chris Lattner authored
We now compile test2/test3 to: _test2: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End addps %xmm1, %xmm0 ret _test3: ## InlineAsm Start set %xmm0, %xmm1 ## InlineAsm End paddd %xmm1, %xmm0 ret as expected. llvm-svn: 50389
-
Chris Lattner authored
towards PR2094. It now compiles the attached .ll file to: _sad16_sse2: movslq %ecx, %rax ## InlineAsm Start %ecx %rdx %rax %rax %r8d %rdx %rsi ## InlineAsm End ## InlineAsm Start set %eax ## InlineAsm End ret which is pretty decent for a 3 output, 4 input asm. llvm-svn: 50386
-
Evan Cheng authored
Fix a bug in RegsForValue::getCopyToRegs() that causes cyclical scheduling units. If it's creating multiple CopyToReg nodes that are "flagged" together, it should not create a TokenFactor for it's chain outputs: c1, f1 = CopyToReg c2, f2 = CopyToReg c3 = TokenFactor c1, c2 ... = user c3, ..., f2 Now that the two CopyToReg's and the user are "flagged" together. They effectively forms a single scheduling unit. The TokenFactor is now both an operand and a successor of the Flagged nodes. llvm-svn: 50376
-
- Apr 28, 2008
-
-
Dan Gohman authored
if the zext is not legal. llvm-svn: 50368
-
Dan Gohman authored
llvm-svn: 50367
-
Dan Gohman authored
aggregate types. llvm-svn: 50366
-
Dan Gohman authored
reorder some of the members for clarity. llvm-svn: 50365
-
Dan Gohman authored
llvm-svn: 50361
-
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
-
Dan Gohman authored
ComputeMaskedBits knows about cttz, ctlz, and ctpop. Teach SelectionDAG's ComputeMaskedBits what InstCombine's knows about SRem. And teach them both some things about high bits in Mul, UDiv, URem, and Sub. This allows instcombine and dagcombine to eliminate sign-extension operations in several new cases. llvm-svn: 50358
-
Dan Gohman authored
sign-bit of x is known to be zero. llvm-svn: 50357
-
Chris Lattner authored
llvm-svn: 50341
-