aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/SplitKit.cpp
AgeCommit message (Expand)AuthorFilesLines
2011-01-04Turn the EdgeBundles class into a stand-alone machine CFG analysis pass.Jakob Stoklund Olesen1-51/+0
2010-12-22Include a shadow of the original CFG edges in the edge bundle graph.Jakob Stoklund Olesen1-0/+4
2010-12-21Add EdgeBundles to SplitKit.Jakob Stoklund Olesen1-0/+47
2010-12-18Check that the register is live-in to the loop header before inserting copies inJakob Stoklund Olesen1-5/+7
2010-12-15Fix build.Jakob Stoklund Olesen1-1/+1
2010-12-15Detect and enumerate bypass loops.Jakob Stoklund Olesen1-0/+30
2010-12-15Separate SplitAnalysis::getSplitLoops().Jakob Stoklund Olesen1-7/+10
2010-11-10No need to add liveness that's already there.Jakob Stoklund Olesen1-4/+1
2010-11-10Basic rematerialization during splitting.Jakob Stoklund Olesen1-30/+56
2010-11-03Tag debug output as regallocJakob Stoklund Olesen1-1/+1
2010-11-01When inserting copies during splitting, always use the parent register as theJakob Stoklund Olesen1-13/+10
2010-11-01Update kill flags while rewriting instructions after splitting.Jakob Stoklund Olesen1-0/+3
2010-10-30Make sure copies are inserted after any exception handling labels at the top ofJakob Stoklund Olesen1-1/+1
2010-10-29Don't transfer unused values to the new intervals formed by splitting.Jakob Stoklund Olesen1-0/+3
2010-10-29Silence Release build warnings.Benjamin Kramer1-4/+3
2010-10-29Never propagate the idom value out of a block that defines its own value.Jakob Stoklund Olesen1-3/+7
2010-10-28Replace SplitKit SSA update with an iterative algorithm very similar to the oneJakob Stoklund Olesen1-87/+158
2010-10-28Make MachineDominators available for SplitEditor. We are going to need it forJakob Stoklund Olesen1-3/+7
2010-10-27Handle critical loop predecessors by making both inside and outside registersJakob Stoklund Olesen1-1/+14
2010-10-27Compute critical loop predecessors in the same way as critical loop exits.Jakob Stoklund Olesen1-1/+33
2010-10-26After splitting, compute connected components of all new registers, not just forJakob Stoklund Olesen1-17/+18
2010-10-26Call RenumberValues for all new registers created during splitting. This isJakob Stoklund Olesen1-1/+2
2010-10-26Preserve PHIDef bits in cloned values during splitting.Jakob Stoklund Olesen1-0/+4
2010-10-22Be more strict about detecting multi-use blocks for isolation.Jakob Stoklund Olesen1-28/+29
2010-10-22Be more strict when detecting critical edges before loop splitting.Jakob Stoklund Olesen1-19/+15
2010-10-22Add print methodsJakob Stoklund Olesen1-18/+25
2010-10-21Don't include the destination interval in the union when computingJakob Stoklund Olesen1-2/+4
2010-10-15Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.Jakob Stoklund Olesen1-15/+13
2010-10-15Move stack slot assignments into LiveRangeEdit.Jakob Stoklund Olesen1-6/+0
2010-10-14Create a new LiveRangeEdit class to keep track of the new registers created whenJakob Stoklund Olesen1-32/+21
2010-10-14Only split around a loop if the live range has uses outside the loop periphery.Jakob Stoklund Olesen1-14/+13
2010-10-08Rename SplitEditor::rewrite to finish() and break it out into a couple of newJakob Stoklund Olesen1-36/+45
2010-10-07After splitting, the remaining LiveInterval may be fragmented into multipleJakob Stoklund Olesen1-11/+24
2010-10-07Print more loop info.Jakob Stoklund Olesen1-0/+16
2010-10-07Print out MBB number when rewriting.Jakob Stoklund Olesen1-1/+2
2010-10-07Cache interval iterators in SplitEditor::addTruncSimpleRange so we only have toJakob Stoklund Olesen1-10/+20
2010-10-07Clean up debug printing.Jakob Stoklund Olesen1-15/+19
2010-10-05Count uses in all nested loops, not just the deepest.Jakob Stoklund Olesen1-1/+2
2010-10-05Remove SplitAnalysis::removeUse. It was only used to make SplitAnalysisJakob Stoklund Olesen1-29/+0
2010-10-05dupli always has an interval now.Jakob Stoklund Olesen1-14/+11
2010-10-05We can split around loops with multiple exits now.Jakob Stoklund Olesen1-6/+0
2010-10-05Update SplitEditor API to reflect the fact that the original live interval isJakob Stoklund Olesen1-13/+9
2010-10-05Intervals are half-open.Jakob Stoklund Olesen1-1/+1
2010-10-05When we find a reaching definition, make sure it is visited from all paths byJakob Stoklund Olesen1-5/+12
2010-10-05Don't use nextIndex to check for live out of instruction.Jakob Stoklund Olesen1-12/+8
2010-09-25Removed VNInfo::isDefAccurate(). Def "accuracy" can be checked by testing whe...Lang Hames1-2/+2
2010-09-21Build the complement interval dupli after the split intervals instead ofJakob Stoklund Olesen1-25/+118
2010-09-16Use the value mapping provided by LiveIntervalMap. This simplifies the code aJakob Stoklund Olesen1-205/+73
2010-09-13Mechanically replace LiveInterval* with LiveIntervalMap for intervals beingJakob Stoklund Olesen1-70/+72
2010-09-13Allow LiveIntervalMap to be reused by resetting the current live interval.Jakob Stoklund Olesen1-14/+24