- Nov 11, 2010
-
-
Jakob Stoklund Olesen authored
superceded by SplitKit. llvm-svn: 118754
-
- Nov 10, 2010
-
-
Andrew Trick authored
benchmarks hitting an assertion. Adds LiveIntervalUnion::collectInterferingVRegs. Fixes "late spilling" by checking for any unspillable live vregs among all physReg aliases. llvm-svn: 118701
-
- Oct 26, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 117337
-
- Sep 25, 2010
-
-
Lang Hames authored
Removed VNInfo::isDefAccurate(). Def "accuracy" can be checked by testing whether LiveIntervals::getInstructionFromIndex(def) returns NULL. llvm-svn: 114791
-
Jakob Stoklund Olesen authored
and it will be removed shortly. llvm-svn: 114778
-
- Aug 14, 2010
-
-
Jakob Stoklund Olesen authored
The earliestStart argument is entirely specific to linear scan allocation, and can be easily calculated by RegAllocLinearScan. Replace std::vector with SmallVector. llvm-svn: 111055
-
- Jul 21, 2010
-
-
Jakob Stoklund Olesen authored
The spillers can pluck the analyses they need from the pass reference. Switch some never-null pointers to references. llvm-svn: 108969
-
- Jul 19, 2010
-
-
Jakob Stoklund Olesen authored
non-const. llvm-svn: 108734
-
- Jul 11, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 108062
-
- Jul 06, 2010
-
-
Eric Christopher authored
llvm-svn: 107684
-
- Jun 30, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 107307
-
Jakob Stoklund Olesen authored
LocalRewriter::runOnMachineFunction uses this information to mark dead spill slots. This means that InlineSpiller now also works for functions that spill. llvm-svn: 107302
-
Jakob Stoklund Olesen authored
llvm-svn: 107233
-
Jakob Stoklund Olesen authored
InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. llvm-svn: 107227
-
- Jun 26, 2010
-
-
Jakob Stoklund Olesen authored
The VNInfo.kills vector was almost unused except for all the code keeping it updated. The few places using it were easily rewritten to check for interval ends instead. The two new methods LiveInterval::killedAt and killedInRange are replacements. This brings us down to 3 independent data structures tracking kills. llvm-svn: 106905
-
- Jun 24, 2010
-
-
Jakob Stoklund Olesen authored
vector instead. This avoids needless copying and allocation. Add documentation. llvm-svn: 106788
-
- May 11, 2010
-
-
Douglas Gregor authored
llvm-svn: 103457
-
- May 06, 2010
-
-
Dan Gohman authored
doesn't have to guess. llvm-svn: 103194
-
Evan Cheng authored
llvm-svn: 103193
-
Evan Cheng authored
llvm-svn: 103185
-
- Apr 08, 2010
-
-
Chris Lattner authored
llvm-svn: 100703
-
- Jan 05, 2010
-
-
David Greene authored
llvm-svn: 92591
-
- Dec 22, 2009
-
-
Lang Hames authored
This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. llvm-svn: 91859
-
- Dec 09, 2009
-
-
Lang Hames authored
When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. llvm-svn: 90951
-
- Dec 03, 2009
-
-
Chris Lattner authored
Patch by Howard Hinnant! llvm-svn: 90365
-
- Nov 20, 2009
-
-
Lang Hames authored
llvm-svn: 89422
-
- Nov 19, 2009
-
-
Lang Hames authored
All spiller calls in RegAllocLinearScan now go through the new Spiller interface. The "-new-spill-framework" command line option has been removed. To use the trivial in-place spiller you should now pass "-spiller=trivial -rewriter=trivial". (Note the trivial spiller/rewriter are only meant to serve as examples of the new in-place modification work. Enabling them will yield terrible, though hopefully functional, code). llvm-svn: 89311
-
- Nov 18, 2009
-
-
Lang Hames authored
Fixed the in-place spiller and trivial rewriter, which had been broken by the recent SlotIndexes work. llvm-svn: 89238
-
- Nov 14, 2009
-
-
Lang Hames authored
PreAllocSplitting is now using this API to insert code. llvm-svn: 88725
-
- Nov 04, 2009
-
-
Lang Hames authored
This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. llvm-svn: 85979
-
- Oct 03, 2009
-
-
Lang Hames authored
llvm-svn: 83255
-
Lang Hames authored
llvm-svn: 83254
-
- Sep 04, 2009
-
-
Lang Hames authored
a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. llvm-svn: 81040
-
- Aug 22, 2009
-
-
Bill Wendling authored
llvm-svn: 79766
-
- Jul 09, 2009
-
-
Lang Hames authored
as an (index,bool) pair. The bool flag records whether the kill is a PHI kill or not. This code will be used to enable splitting of live intervals containing PHI-kills. A slight change to live interval weights introduced an extra spill into lsr-code-insertion (outside the critical sections). The test condition has been updated to reflect this. llvm-svn: 75097
-
- Jun 24, 2009
-
-
Lang Hames authored
llvm-svn: 74114
-
- Jun 19, 2009
-
-
Lang Hames authored
llvm-svn: 73750
-
- Jun 17, 2009
-
-
Lang Hames authored
llvm-svn: 73634
-
- Jun 02, 2009
-
-
Lang Hames authored
llvm-svn: 72729
-
- May 18, 2009
-
-
Lang Hames authored
llvm-svn: 72030
-