aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/RegAllocGreedy.cpp
Commit message (Expand)AuthorAgeFilesLines
* Drop interference reassignment in favor of eviction.Jakob Stoklund Olesen2011-03-271-132/+15
* Add debug output.Jakob Stoklund Olesen2011-03-191-0/+1
* Add a LiveRangeEdit delegate callback before shrinking a live range.Jakob Stoklund Olesen2011-03-161-0/+12
* Clarify debugging output.Jakob Stoklund Olesen2011-03-161-2/+8
* Tell the register allocator about new unused virtual registers.Jakob Stoklund Olesen2011-03-131-0/+10
* Change the Spiller interface to take a LiveRangeEdit reference.Jakob Stoklund Olesen2011-03-101-1/+2
* Make SpillIs an optional pointer. Avoid creating a bunch of temporary SmallVe...Jakob Stoklund Olesen2011-03-101-2/+1
* Add a LiveRangeEdit::Delegate protocol.Jakob Stoklund Olesen2011-03-091-4/+20
* Make the UselessRegs argument optional in the LiveRangeEdit constructor.Jakob Stoklund Olesen2011-03-071-6/+3
* Rework the global split cost calculation.Jakob Stoklund Olesen2011-03-051-21/+30
* Compute the constraints for global live range splitting from an interference ...Jakob Stoklund Olesen2011-03-051-163/+67
* Extract a method. No functional change.Jakob Stoklund Olesen2011-03-041-40/+52
* Go back to comparing spill weights when deciding if interference can be evicted.Jakob Stoklund Olesen2011-03-041-9/+5
* Tweak debug output. No functional changes.Jakob Stoklund Olesen2011-03-041-1/+6
* Precompute block frequencies, pow() isn't free.Jakob Stoklund Olesen2011-03-041-4/+3
* Cache basic block bounds instead of asking SlotIndexes::getMBBRange all the t...Jakob Stoklund Olesen2011-03-031-39/+30
* Change the SplitEditor interface to a single instance can be shared for multi...Jakob Stoklund Olesen2011-03-031-34/+37
* Drop RAGreedy::trySpillInterferences().Jakob Stoklund Olesen2011-03-011-70/+0
* Keep track of which stage produced a live range, and bypass earlier stages wh...Jakob Stoklund Olesen2011-03-011-20/+76
* Try harder to get the hint by preferring to evict hint interference.Jakob Stoklund Olesen2011-02-251-0/+3
* Tweak the register allocator priority queue some more.Jakob Stoklund Olesen2011-02-241-10/+22
* Keep track of how many times a live range has been dequeued, and prioritize n...Jakob Stoklund Olesen2011-02-231-0/+7
* Fix a bug in determining if there is only a single interfering register.Jakob Stoklund Olesen2011-02-231-2/+1
* Be more aggressive about evicting interference.Jakob Stoklund Olesen2011-02-231-26/+88
* Change the RAGreedy register assignment order so large live ranges are alloca...Jakob Stoklund Olesen2011-02-221-17/+24
* Add SplitKit::isOriginalEndpoint and use it to force live range splitting to ...Jakob Stoklund Olesen2011-02-211-2/+11
* Give SplitAnalysis a VRM member to access VirtRegMap::getOriginal().Jakob Stoklund Olesen2011-02-191-1/+1
* Separate timers for local and global splitting.Jakob Stoklund Olesen2011-02-191-2/+5
* Add VirtRegMap::rewrite() and use it in the new register allocators.Jakob Stoklund Olesen2011-02-181-3/+1
* Add basic register allocator statistics.Jakob Stoklund Olesen2011-02-171-0/+10
* Split local live ranges.Jakob Stoklund Olesen2011-02-171-2/+277
* Simplify using the new leaveIntvBefore()Jakob Stoklund Olesen2011-02-091-13/+2
* Move calcLiveBlockInfo() and the BlockInfo struct into SplitAnalysis.Jakob Stoklund Olesen2011-02-091-143/+20
* Evict a lighter single interference before attempting to split a live range.Jakob Stoklund Olesen2011-02-091-29/+41
* Fix one more case of splitting after the last split point.Jakob Stoklund Olesen2011-02-081-8/+10
* Reorganize interference code to check LastSplitPoint first.Jakob Stoklund Olesen2011-02-081-29/+43
* Also handle the situation where an indirect branch is the first (and last)Jakob Stoklund Olesen2011-02-081-6/+8
* Add LiveIntervals::addKillFlags() to recompute kill flags after register allo...Jakob Stoklund Olesen2011-02-081-0/+1
* Trim debug spewJakob Stoklund Olesen2011-02-081-1/+0
* Add SplitEditor::overlapIntv() to create small ranges where both registers ar...Jakob Stoklund Olesen2011-02-081-2/+25
* Be more strict about the first/last interference-free use.Jakob Stoklund Olesen2011-02-051-4/+25
* Add assertions to verify that the new interval is clear of the interference.Jakob Stoklund Olesen2011-02-051-7/+14
* Be more accurate about live range splitting at the end of blocks.Jakob Stoklund Olesen2011-02-041-4/+17
* Verify that one of the ranges produced by region splitting is allocatable.Jakob Stoklund Olesen2011-02-041-1/+15
* Also compute interference intervals for blocks with no uses.Jakob Stoklund Olesen2011-02-041-3/+1
* Ensure that the computed interference intervals actually overlap their basic ...Jakob Stoklund Olesen2011-02-031-3/+12
* Return live range end points from SplitEditor::enter*/leave*.Jakob Stoklund Olesen2011-02-031-12/+8
* Reapply this.Eric Christopher2011-02-031-12/+3
* Temporarily revert 124765 in an attempt to find the cycle breaking bootstrap.Eric Christopher2011-02-031-3/+12
* Defer SplitKit value mapping until all defs are available.Jakob Stoklund Olesen2011-02-031-12/+3