summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Use getDebugLoc and setDebugLoc instead of getDbgMetadata and setDbgMetadata,Dan Gohman2010-07-201-4/+2
| | | | | | avoiding MDNode overhead. llvm-svn: 108909
* Remember that the induction variable is always a PHINode andDan Gohman2010-07-201-4/+4
| | | | | | | use getIncomingValueForBlock instead of LoopInfo::getCanonicalInductionVariableIncrement. llvm-svn: 108865
* Tweak per Chris' comments.Owen Anderson2010-07-191-7/+8
| | | | llvm-svn: 108736
* Reimplement r108639 in InstCombine rather than DAGCombine.Owen Anderson2010-07-191-0/+26
| | | | llvm-svn: 108687
* Another attempt at getting the clang self-host to like my instcombine patch.Owen Anderson2010-07-171-0/+32
| | | | llvm-svn: 108614
* eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,Chris Lattner2010-07-161-1/+1
| | | | | | so there is no locking involved in type refinement. llvm-svn: 108553
* Reorder the contents of various getAnalysisUsage functions, eliminatingDan Gohman2010-07-164-20/+23
| | | | | | a redundant loopsimplify run from the default -O2 sequence. llvm-svn: 108539
* Remove the rest of my instcombine changes. Back to the drawing board on ↵Owen Anderson2010-07-161-28/+0
| | | | | | this one. llvm-svn: 108530
* eliminate CallInst::ArgOffsetGabor Greif2010-07-164-13/+13
| | | | llvm-svn: 108522
* Arrays and vectors with different numbers of elements are not equivalent.Nick Lewycky2010-07-161-4/+10
| | | | llvm-svn: 108517
* Also revert 108422, it's causing some test failures.Eric Christopher2010-07-161-19/+0
| | | | | | Working on testcases for Owen. llvm-svn: 108494
* Don't merge uses when they are targetting fixup sites withDan Gohman2010-07-151-1/+20
| | | | | | | | | | | | | different widths. In a use with a narrower fixup, formulae may be wider than the fixup, in which case the high bits aren't necessarily meaningful, so it isn't safe to reuse them for uses with wider fixups. This fixes PR7618, though the testcase is too large for a reasonable regression test, since it heavily dependes on hitting LSR's heuristics in a certain way. llvm-svn: 108455
* Use dbgs() instead of errs() in a DEBUG.Dan Gohman2010-07-151-1/+1
| | | | llvm-svn: 108453
* Speculatively revert r108429 to fix the clang self-host.Owen Anderson2010-07-152-19/+28
| | | | llvm-svn: 108436
* Per Chris' suggestion, get rid of the select canonicalization and just addOwen Anderson2010-07-152-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
* Remove unneeded check, and correct style.Owen Anderson2010-07-151-3/+2
| | | | llvm-svn: 108427
* Watch out for a constant offset cancelling out a base register, formingDan Gohman2010-07-151-2/+9
| | | | | | | a zero. This situation arrises in Fortran code with induction variables that start at 1 instead of 0. This fixes PR7651. llvm-svn: 108424
* Reapply r108378, with bugfixes, testcase, and improved comment formatting.Owen Anderson2010-07-152-0/+47
| | | | | | This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine. llvm-svn: 108422
* This is a full sentence.Nick Lewycky2010-07-151-1/+1
| | | | llvm-svn: 108418
* Disable aliases on all platforms.Nick Lewycky2010-07-151-0/+5
| | | | llvm-svn: 108417
* make various clients of ReplaceAndSimplifyAllUses tolerate Chris Lattner2010-07-151-2/+3
| | | | | | | | it *changing* the things it replaces, not just causing them to drop to null. There is no functionality change yet, but this is required for a subsequent patch. llvm-svn: 108414
* Speculatively revert r108378; may be causing bootstrap failures.Eli Friedman2010-07-152-43/+0
| | | | llvm-svn: 108389
* Add instcombine transforms to optimize tests of multiple bits of the same ↵Owen Anderson2010-07-142-0/+43
| | | | | | value into a single larger comparison. llvm-svn: 108378
* Extend SimplifyCFG's common-destination folding heuristic to allow a singleOwen Anderson2010-07-141-5/+67
| | | | | | | | | | "bonus" instruction to be speculatively executed. Add a heuristic to ensure we're not tripping up out-of-order execution by checking that this bonus instruction only uses values that were already guaranteed to be available. This allows us to eliminate the short circuit in (x&1)&&(x&2). llvm-svn: 108351
* revert r108320, I see the failures now...Chris Lattner2010-07-141-8/+0
| | | | llvm-svn: 108322
* reapply benjamin's instcombine patch, I don't see anything wrong with it and ↵Chris Lattner2010-07-141-0/+8
| | | | | | can't repro any problems with a manual self-host. llvm-svn: 108320
* Grammar.Eric Christopher2010-07-131-1/+1
| | | | llvm-svn: 108252
* Handle the case of a tail recursion in which the tail call is followedDuncan Sands2010-07-131-13/+35
| | | | | | | | | by a return that returns a constant, while elsewhere in the function another return instruction returns a different constant. This is a special case of accumulator recursion, so just generalize the existing logic a bit. llvm-svn: 108241
* Nope, still breaks the release selfhost bots :(Benjamin Kramer2010-07-121-8/+0
| | | | llvm-svn: 108153
* Reapply the "or" half of r108136, which seems to be less problematic.Benjamin Kramer2010-07-121-0/+8
| | | | llvm-svn: 108152
* cache result of operator*Gabor Greif2010-07-121-6/+9
| | | | llvm-svn: 108150
* Revert r108141 again, sigh.Benjamin Kramer2010-07-121-17/+0
| | | | llvm-svn: 108148
* cache result of operator*Gabor Greif2010-07-121-2/+3
| | | | llvm-svn: 108147
* cache result of operator*Gabor Greif2010-07-121-6/+9
| | | | llvm-svn: 108146
* cache result of operator*Gabor Greif2010-07-121-3/+4
| | | | llvm-svn: 108145
* cache result of operator*Gabor Greif2010-07-121-4/+6
| | | | llvm-svn: 108144
* cache results of operator*Gabor Greif2010-07-121-3/+5
| | | | llvm-svn: 108143
* cache results of operator*Gabor Greif2010-07-121-21/+31
| | | | llvm-svn: 108142
* Reapply 108136 with an ugly pasto fixed.Benjamin Kramer2010-07-121-0/+17
| | | | llvm-svn: 108141
* Move optimization to avoid redundant matching.Benjamin Kramer2010-07-121-13/+13
| | | | llvm-svn: 108140
* Revert r108136 until I figure out why it broke selfhost.Benjamin Kramer2010-07-121-17/+0
| | | | llvm-svn: 108139
* cache dereferenced iteratorsGabor Greif2010-07-121-2/+3
| | | | llvm-svn: 108138
* recommit r108131 (hich has been backed out in r108135) with a fixGabor Greif2010-07-121-2/+3
| | | | llvm-svn: 108137
* instcombine: fold (x & y) | (~x & z) and (x & y) ^ (~x & z) into ((y ^ z) & ↵Benjamin Kramer2010-07-121-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
* back out r108131 (of TailDuplication.cpp) for now, it causes a buildbot failureGabor Greif2010-07-121-5/+4
| | | | llvm-svn: 108135
* cache dereferenced iteratorsGabor Greif2010-07-121-3/+3
| | | | llvm-svn: 108134
* cache dereferenced iteratorsGabor Greif2010-07-121-4/+6
| | | | llvm-svn: 108133
* cache dereferenced iteratorsGabor Greif2010-07-121-3/+5
| | | | llvm-svn: 108132
* cache dereferenced iteratorsGabor Greif2010-07-122-7/+9
| | | | llvm-svn: 108131
* Convert some tab stops into spaces.Duncan Sands2010-07-123-6/+6
| | | | llvm-svn: 108130
OpenPOWER on IntegriCloud