| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Temporarily revert r110987 as it's causing some miscompares in | Eric Christopher | 2010-08-17 | 1 | -123/+64 | |
| | | | | | | | vector heavy code. I'll re-enable when we've tracked down the problem. llvm-svn: 111318 | |||||
| * | Reapply this transformation now that it is passing the external test which ↵ | Nate Begeman | 2010-08-13 | 1 | -64/+123 | |
| | | | | | | | it previously failed. llvm-svn: 110987 | |||||
| * | Temporarily revert 110737 and 110734, they were causing failures | Eric Christopher | 2010-08-12 | 1 | -141/+64 | |
| | | | | | | | in an external testsuite. llvm-svn: 110905 | |||||
| * | Add the minimal amount of smarts necessary to instcombine of shufflevectors ↵ | Nate Begeman | 2010-08-10 | 1 | -64/+141 | |
| | | | | | | | | | | | | | | | to recognize patterns generated by clang for transpose of a matrix in generic vectors. This is made of two parts: 1) Propagating vector extracts of hi/lo half into their users 2) Recognizing an insertion of even elements followed by the odd elements as an unpack. Testcase to come, but this shrinks the # of shuffle instructions generated on x86 from ~40 to the minimal 8. llvm-svn: 110734 | |||||
| * | PR7853: fix a silly mistake introduced in r101899, and add a test to make sure | Eli Friedman | 2010-08-09 | 1 | -1/+1 | |
| | | | | | | | it doesn't regress again. llvm-svn: 110597 | |||||
| * | Reapply r110396, with fixes to appease the Linux buildbot gods. | Owen Anderson | 2010-08-06 | 1 | -1/+1 | |
| | | | | | llvm-svn: 110460 | |||||
| * | Revert r110396 to fix buildbots. | Owen Anderson | 2010-08-06 | 1 | -1/+1 | |
| | | | | | llvm-svn: 110410 | |||||
| * | Don't use PassInfo* as a type identifier for passes. Instead, use the ↵ | Owen Anderson | 2010-08-05 | 1 | -1/+1 | |
| | | | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396 | |||||
| * | Make instcombine set explicit alignments on load or store | Dan Gohman | 2010-08-03 | 1 | -6/+14 | |
| | | | | | | | | instructions with alignment 0, so that subsequent passes don't need to bother checking the TargetData ABI size manually. llvm-svn: 110128 | |||||
| * | Use unary + instead of a separate local variable for working | Dan Gohman | 2010-08-03 | 1 | -2/+1 | |
| | | | | | | | around std::min vs static const friction. llvm-svn: 110112 | |||||
| * | Re-apply the infamous r108614, with a fix pointed out by Dirk Steinke. | Owen Anderson | 2010-08-02 | 1 | -5/+38 | |
| | | | | | llvm-svn: 110036 | |||||
| * | Speculatively revert r108614, "Another attempt at getting the clang self-host to | Daniel Dunbar | 2010-07-31 | 1 | -32/+0 | |
| | | | | | | | | like my instcombine patch.", in an attempt to fix Clang i386 bootstrap. - Also PR7719. llvm-svn: 109953 | |||||
| * | Move MaximumAlignment to be a member of the Value class. | Dan Gohman | 2010-07-30 | 1 | -1/+2 | |
| | | | | | llvm-svn: 109891 | |||||
| * | PR7750: !CExpr->isNullValue() only properly computes whether CExpr is nonnull | Eli Friedman | 2010-07-29 | 1 | -1/+1 | |
| | | | | | | | if CExpr is a ConstantInt. llvm-svn: 109773 | |||||
| * | Define a maximum supported alignment value for load, store, and | Dan Gohman | 2010-07-28 | 1 | -1/+5 | |
| | | | | | | | | | | alloca instructions (constrained by their internal encoding), and add error checking for it. Fix an instcombine bug which generated huge alignment values (null is infinitely aligned). This fixes undefined behavior noticed by John Regehr. llvm-svn: 109643 | |||||
| * | When user code intentionally dereferences null, the alignment of the | Dan Gohman | 2010-07-28 | 1 | -2/+7 | |
| | | | | | | | | dereference is theoretically infinite. Put a cap on the computed alignment to avoid overflow, noticed by John Regehr. llvm-svn: 109596 | |||||
| * | mass elimination of reliance on automatic iterator dereferencing | Gabor Greif | 2010-07-22 | 1 | -1/+1 | |
| | | | | | llvm-svn: 109103 | |||||
| * | undo 80 column trespassing I caused | Gabor Greif | 2010-07-22 | 1 | -7/+11 | |
| | | | | | llvm-svn: 109092 | |||||
| * | Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). | Owen Anderson | 2010-07-21 | 1 | -2/+2 | |
| | | | | | llvm-svn: 109045 | |||||
| * | Tweak per Chris' comments. | Owen Anderson | 2010-07-19 | 1 | -7/+8 | |
| | | | | | llvm-svn: 108736 | |||||
| * | Reimplement r108639 in InstCombine rather than DAGCombine. | Owen Anderson | 2010-07-19 | 1 | -0/+26 | |
| | | | | | llvm-svn: 108687 | |||||
| * | Another attempt at getting the clang self-host to like my instcombine patch. | Owen Anderson | 2010-07-17 | 1 | -0/+32 | |
| | | | | | llvm-svn: 108614 | |||||
| * | Remove the rest of my instcombine changes. Back to the drawing board on ↵ | Owen Anderson | 2010-07-16 | 1 | -28/+0 | |
| | | | | | | | this one. llvm-svn: 108530 | |||||
| * | eliminate CallInst::ArgOffset | Gabor Greif | 2010-07-16 | 1 | -3/+3 | |
| | | | | | llvm-svn: 108522 | |||||
| * | Also revert 108422, it's causing some test failures. | Eric Christopher | 2010-07-16 | 1 | -19/+0 | |
| | | | | | | | Working on testcases for Owen. llvm-svn: 108494 | |||||
| * | Speculatively revert r108429 to fix the clang self-host. | Owen Anderson | 2010-07-15 | 2 | -19/+28 | |
| | | | | | llvm-svn: 108436 | |||||
| * | Per Chris' suggestion, get rid of the select canonicalization and just add | Owen Anderson | 2010-07-15 | 2 | -28/+19 | |
| | | | | | | | | | the corresponding or-icmp-and pattern. This has the added benefit of doing the matching earlier, and thus being less susceptible to being confused by earlier transforms. llvm-svn: 108429 | |||||
| * | Reapply r108378, with bugfixes, testcase, and improved comment formatting. | Owen Anderson | 2010-07-15 | 2 | -0/+47 | |
| | | | | | | | This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine. llvm-svn: 108422 | |||||
| * | Speculatively revert r108378; may be causing bootstrap failures. | Eli Friedman | 2010-07-15 | 2 | -43/+0 | |
| | | | | | llvm-svn: 108389 | |||||
| * | Add instcombine transforms to optimize tests of multiple bits of the same ↵ | Owen Anderson | 2010-07-14 | 2 | -0/+43 | |
| | | | | | | | value into a single larger comparison. llvm-svn: 108378 | |||||
| * | revert r108320, I see the failures now... | Chris Lattner | 2010-07-14 | 1 | -8/+0 | |
| | | | | | llvm-svn: 108322 | |||||
| * | reapply benjamin's instcombine patch, I don't see anything wrong with it and ↵ | Chris Lattner | 2010-07-14 | 1 | -0/+8 | |
| | | | | | | | can't repro any problems with a manual self-host. llvm-svn: 108320 | |||||
| * | Nope, still breaks the release selfhost bots :( | Benjamin Kramer | 2010-07-12 | 1 | -8/+0 | |
| | | | | | llvm-svn: 108153 | |||||
| * | Reapply the "or" half of r108136, which seems to be less problematic. | Benjamin Kramer | 2010-07-12 | 1 | -0/+8 | |
| | | | | | llvm-svn: 108152 | |||||
| * | cache result of operator* | Gabor Greif | 2010-07-12 | 1 | -6/+9 | |
| | | | | | llvm-svn: 108150 | |||||
| * | Revert r108141 again, sigh. | Benjamin Kramer | 2010-07-12 | 1 | -17/+0 | |
| | | | | | llvm-svn: 108148 | |||||
| * | cache result of operator* | Gabor Greif | 2010-07-12 | 1 | -2/+3 | |
| | | | | | llvm-svn: 108147 | |||||
| * | Reapply 108136 with an ugly pasto fixed. | Benjamin Kramer | 2010-07-12 | 1 | -0/+17 | |
| | | | | | llvm-svn: 108141 | |||||
| * | Move optimization to avoid redundant matching. | Benjamin Kramer | 2010-07-12 | 1 | -13/+13 | |
| | | | | | llvm-svn: 108140 | |||||
| * | Revert r108136 until I figure out why it broke selfhost. | Benjamin Kramer | 2010-07-12 | 1 | -17/+0 | |
| | | | | | llvm-svn: 108139 | |||||
| * | instcombine: fold (x & y) | (~x & z) and (x & y) ^ (~x & z) into ((y ^ z) & ↵ | Benjamin Kramer | 2010-07-12 | 1 | -0/+17 | |
| | | | | | | | | | | | | | | | | | | x) ^ z which is one instruction shorter. (PR6773) before: %and = and i32 %y, %x %neg = xor i32 %x, -1 %and4 = and i32 %z, %neg %xor = xor i32 %and4, %and after: %xor1 = xor i32 %z, %y %and2 = and i32 %xor1, %x %xor = xor i32 %and2, %z llvm-svn: 108136 | |||||
| * | Convert some tab stops into spaces. | Duncan Sands | 2010-07-12 | 1 | -1/+1 | |
| | | | | | llvm-svn: 108130 | |||||
| * | cache result of operator* | Gabor Greif | 2010-07-09 | 1 | -2/+3 | |
| | | | | | llvm-svn: 107972 | |||||
| * | do not repeatedly dereference use_iterator | Gabor Greif | 2010-07-09 | 1 | -3/+4 | |
| | | | | | llvm-svn: 107962 | |||||
| * | Teach instcombine to transform | Benjamin Kramer | 2010-07-08 | 1 | -0/+31 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (X >s -1) ? C1 : C2 and (X <s 0) ? C2 : C1 into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional. This optimization could be extended to take non-const C1 and C2 but we better stay conservative to avoid code size bloat for now. for int sel(int n) { return n >= 0 ? 60 : 100; } we now generate sarl $31, %edi andl $40, %edi leal 60(%rdi), %eax instead of testl %edi, %edi movl $60, %ecx movl $100, %eax cmovnsl %ecx, %eax llvm-svn: 107866 | |||||
| * | use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperand | Gabor Greif | 2010-06-30 | 1 | -3/+3 | |
| | | | | | llvm-svn: 107275 | |||||
| * | use ArgOperand API | Gabor Greif | 2010-06-28 | 1 | -12/+12 | |
| | | | | | llvm-svn: 107017 | |||||
| * | use ArgOperand API | Gabor Greif | 2010-06-28 | 1 | -4/+4 | |
| | | | | | llvm-svn: 107016 | |||||
| * | use ArgOperand API (some hunks I could split) | Gabor Greif | 2010-06-25 | 1 | -13/+13 | |
| | | | | | llvm-svn: 106824 | |||||
| * | use ArgOperand API | Gabor Greif | 2010-06-24 | 1 | -3/+3 | |
| | | | | | llvm-svn: 106752 | |||||

