aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/RegAllocGreedy.cpp
AgeCommit message (Expand)Author
2011-02-23Keep track of how many times a live range has been dequeued, and prioritize n...Jakob Stoklund Olesen
2011-02-23Fix a bug in determining if there is only a single interfering register.Jakob Stoklund Olesen
2011-02-23Be more aggressive about evicting interference.Jakob Stoklund Olesen
2011-02-22Change the RAGreedy register assignment order so large live ranges are alloca...Jakob Stoklund Olesen
2011-02-21Add SplitKit::isOriginalEndpoint and use it to force live range splitting to ...Jakob Stoklund Olesen
2011-02-19Give SplitAnalysis a VRM member to access VirtRegMap::getOriginal().Jakob Stoklund Olesen
2011-02-19Separate timers for local and global splitting.Jakob Stoklund Olesen
2011-02-18Add VirtRegMap::rewrite() and use it in the new register allocators.Jakob Stoklund Olesen
2011-02-17Add basic register allocator statistics.Jakob Stoklund Olesen
2011-02-17Split local live ranges.Jakob Stoklund Olesen
2011-02-09Simplify using the new leaveIntvBefore()Jakob Stoklund Olesen
2011-02-09Move calcLiveBlockInfo() and the BlockInfo struct into SplitAnalysis.Jakob Stoklund Olesen
2011-02-09Evict a lighter single interference before attempting to split a live range.Jakob Stoklund Olesen
2011-02-08Fix one more case of splitting after the last split point.Jakob Stoklund Olesen
2011-02-08Reorganize interference code to check LastSplitPoint first.Jakob Stoklund Olesen
2011-02-08Also handle the situation where an indirect branch is the first (and last)Jakob Stoklund Olesen
2011-02-08Add LiveIntervals::addKillFlags() to recompute kill flags after register allo...Jakob Stoklund Olesen
2011-02-08Trim debug spewJakob Stoklund Olesen
2011-02-08Add SplitEditor::overlapIntv() to create small ranges where both registers ar...Jakob Stoklund Olesen
2011-02-05Be more strict about the first/last interference-free use.Jakob Stoklund Olesen
2011-02-05Add assertions to verify that the new interval is clear of the interference.Jakob Stoklund Olesen
2011-02-04Be more accurate about live range splitting at the end of blocks.Jakob Stoklund Olesen
2011-02-04Verify that one of the ranges produced by region splitting is allocatable.Jakob Stoklund Olesen
2011-02-04Also compute interference intervals for blocks with no uses.Jakob Stoklund Olesen
2011-02-03Ensure that the computed interference intervals actually overlap their basic ...Jakob Stoklund Olesen
2011-02-03Return live range end points from SplitEditor::enter*/leave*.Jakob Stoklund Olesen
2011-02-03Reapply this.Eric Christopher
2011-02-03Temporarily revert 124765 in an attempt to find the cycle breaking bootstrap.Eric Christopher
2011-02-03Defer SplitKit value mapping until all defs are available.Jakob Stoklund Olesen
2011-01-20SplitKit requires that all defs are in place before calling useIntv().Jakob Stoklund Olesen
2011-01-19Don't accidentally leave small gaps in the live ranges when leaving the activeJakob Stoklund Olesen
2011-01-19Implement RAGreedy::splitAroundRegion and remove loop splitting.Jakob Stoklund Olesen
2011-01-18Add RAGreedy methods for splitting live ranges around regions.Jakob Stoklund Olesen
2010-12-28Pacify the compiler. BestWeight cannot in fact be used uninitializedDuncan Sands
2010-12-22When RegAllocGreedy decides to spill the interferences of the current register,Jakob Stoklund Olesen
2010-12-18Tweak debug spew.Jakob Stoklund Olesen
2010-12-18Fix GCC warning:Nick Lewycky
2010-12-18Pass a Banner argument to the machine code verifier both fromJakob Stoklund Olesen
2010-12-17Make the -verify-regalloc command line option available to base classes asJakob Stoklund Olesen
2010-12-17Enable loop splitting in RegAllocGreedy.Jakob Stoklund Olesen
2010-12-15Start using SplitKit and MachineLoopRanges in RegAllocGreedy in preparation ofJakob Stoklund Olesen
2010-12-14Simplify RegAllocGreedy's use of register aliases.Jakob Stoklund Olesen
2010-12-14Move debugging code entirely within DEBUG(). Silences an unused variableMatt Beaumont-Gay
2010-12-14Add LiveIntervalUnion print methods, RegAllocGreedy::trySplit debug spew.Jakob Stoklund Olesen
2010-12-14Q.seenAllInterferences() must be called after Q.collectInterferingVRegs().Jakob Stoklund Olesen
2010-12-14Remove unused vector.Jakob Stoklund Olesen
2010-12-14Try reassigning all virtual register interferences, not just those with lowerJakob Stoklund Olesen
2010-12-14Add stub for RAGreedy::trySplit.Jakob Stoklund Olesen
2010-12-11Add named timer groups for the different stages of register allocation.Jakob Stoklund Olesen
2010-12-10Move MRI into RegAllocBase. Clean up debug output a bit.Jakob Stoklund Olesen