summaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Expand)AuthorFilesLines
2005-04-21Improve and elimination. On PPC, for:Chris Lattner1-6/+26
2005-04-21Fold (x & 8) != 0 and (x & 8) == 8 into (x & 8) >> 3.Chris Lattner1-0/+22
2005-04-18Fold setcc of MVT::i1 operands into logical operationsChris Lattner1-0/+39
2005-04-18Another minor simplification: handle setcc (zero_extend x), c -> setcc(x, c')Chris Lattner1-0/+45
2005-04-18Another simple xformChris Lattner1-0/+8
2005-04-18Fold:Chris Lattner1-0/+11
2005-04-18Make the AND elimination operation recursive and significantly more powerful,Chris Lattner1-26/+57
2005-04-14Add a couple missing transforms in getSetCC that were triggering assertionsNate Begeman1-1/+8
2005-04-13Disbale the broken fold of shift + sz[ext] for nowNate Begeman1-7/+30
2005-04-13fix an infinite loopChris Lattner1-1/+1
2005-04-13fix some serious miscompiles on ia64, alpha, and ppcChris Lattner1-1/+1
2005-04-13avoid work when possible, perhaps fix the problem nate and andrew are seeingChris Lattner1-0/+1
2005-04-13Implement expansion of unsigned i64 -> FP.Chris Lattner1-2/+31
2005-04-13Make expansion of uint->fp cast assert out instead of infinitely recurse.Chris Lattner1-1/+1
2005-04-13add back the optimization that Nate added for shl X, (zext_inreg y)Chris Lattner1-2/+23
2005-04-13Oops, remove these too.Chris Lattner1-6/+2
2005-04-13Instead of making ZERO_EXTEND_INREG nodes, use the helper method inChris Lattner1-31/+22
2005-04-13Remove all foldings of ZERO_EXTEND_INREG, moving them to work for AND nodesChris Lattner1-41/+46
2005-04-12Fold shift x, [sz]ext(y) -> shift x, yNate Begeman1-0/+16
2005-04-12Fold shift by size larger than type size to undefNate Begeman2-19/+5
2005-04-12promote extload i1 -> extload i8Chris Lattner1-2/+10
2005-04-12Remove some redundant checks, add a couple of new ones. This allows us toChris Lattner1-7/+5
2005-04-12Emit comparisons against the sign bit better. Codegen this:Chris Lattner1-0/+10
2005-04-12Emit long comparison against -1 better. Instead of this (x86):Chris Lattner1-0/+10
2005-04-12canonicalize x <u 1 -> x == 0. On this testcase:Chris Lattner1-0/+9
2005-04-11Teach the dag mechanism that this:Chris Lattner1-2/+21
2005-04-11Fix expansion of shifts by exactly NVT bits on arch's (like X86) that haveChris Lattner1-0/+10
2005-04-11Fix libcall code to not pass a NULL Chain to LowerCallToNate Begeman1-5/+30
2005-04-10Don't bother sign/zext_inreg'ing the result of an and operation if we knowChris Lattner1-0/+19
2005-04-10Teach legalize to deal with targets that don't support some SEXTLOAD/ZEXTLOADsChris Lattner1-13/+38
2005-04-10don't zextload fp values!Chris Lattner1-1/+4
2005-04-10Until we have a dag combiner, promote using zextload's instead of extloads.Chris Lattner1-1/+2
2005-04-10Fold zext_inreg(zextload), likewise for sext'sChris Lattner1-0/+6
2005-04-10add a simple xformChris Lattner1-0/+6
2005-04-10Fix a thinko. If the operand is promoted, pass the promoted value intoChris Lattner2-1/+5
2005-04-09add a little peephole optimization. This allows us to codegen:Chris Lattner1-0/+11
2005-04-09there is no need to remove this instruction, linscan does it already as itChris Lattner1-5/+0
2005-04-09Adjust live intervals to support a livein setChris Lattner1-2/+44
2005-04-09Consider the livein/out set for a function, allowing targets to not have toChris Lattner1-0/+20
2005-04-09recognize some patterns as fabs operations, so that fabs at the source levelChris Lattner1-0/+21
2005-04-09Emit BRCONDTWOWAY when possible.Chris Lattner1-7/+6
2005-04-09Legalize BRCONDTWOWAY into a BRCOND/BR pair if a target doesn't support it.Chris Lattner1-0/+33
2005-04-09print and fold BRCONDTWOWAY correctlyChris Lattner1-11/+25
2005-04-09canonicalize a bunch of operations involving fnegChris Lattner1-0/+21
2005-04-07If a target zero or sign extends the result of its setcc, allow folding ofChris Lattner1-1/+13
2005-04-07Remove somethign I had for testingChris Lattner1-1/+1
2005-04-07This patch does two things. First, it canonicalizes 'X >= C' -> 'X > C-1'Chris Lattner1-7/+49
2005-04-07Fix a really scary bug that Nate found where we weren't deleting the rightChris Lattner1-1/+1
2005-04-06Teach ExpandShift how to handle shifts by a constant. This allows targetsNate Begeman1-8/+64
2005-04-06Expand SREM and UREM for targets that claim not to have them, like PowerPCNate Begeman1-2/+25