- Feb 09, 2011
-
-
Jakob Stoklund Olesen authored
The tag is updated whenever the live interval union is changed, and it is tested before using cached information. llvm-svn: 125224
-
- Jan 09, 2011
-
-
Jakob Stoklund Olesen authored
Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. llvm-svn: 123107
-
- Dec 18, 2010
-
-
Jakob Stoklund Olesen authored
interference. llvm-svn: 122108
-
- Dec 17, 2010
-
-
Jakob Stoklund Olesen authored
This is a three-way interval list intersection between a virtual register, a live interval union, and a loop. It will be used to identify interference-free loops for live range splitting. llvm-svn: 122034
-
- Dec 16, 2010
-
-
Jakob Stoklund Olesen authored
live range splitting around loops guided by register pressure. So far, trySplit() simply prints a lot of debug output. llvm-svn: 121918
-
- Dec 14, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 121783
-
Jakob Stoklund Olesen authored
LiveIntervalUnions. llvm-svn: 121781
-
- Dec 09, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 121410
-
Andrew Trick authored
heuristic to reshuffle register assignments when we can't find an available reg. llvm-svn: 121388
-
Jakob Stoklund Olesen authored
references instead. Similarly, IntervalMap::begin() is almost as expensive as find(), so use find(x) instead of begin().advanceTo(x); This makes RegAllocBasic run another 5% faster. llvm-svn: 121344
-
Jakob Stoklund Olesen authored
llvm-svn: 121319
-
- Dec 08, 2010
-
-
Jakob Stoklund Olesen authored
This speeds up RegAllocBasic by 20%, not counting releaseMemory which becomes way faster. llvm-svn: 121201
-
- Dec 01, 2010
-
-
Andrew Trick authored
llvm-svn: 120504
-
Andrew Trick authored
in favor of the widespread llvm style. Capitalize variables and add newlines for visual parsing. Rename variables for readability. And other cleanup. llvm-svn: 120490
-
- 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
-
- Nov 09, 2010
-
-
Andrew Trick authored
(retry now that the windows build is green) llvm-svn: 118630
-
Andrew Trick authored
llvm-svn: 118613
-
Andrew Trick authored
llvm-svn: 118604
-
- Nov 08, 2010
-
-
Andrew Trick authored
handle cases in which a register is unavailable for spill code. Adds LiveIntervalUnion::extract. While processing interferences on a live virtual register, reuses the same Query object for each physcial reg. llvm-svn: 118423
-
- Oct 27, 2010
-
-
Andrew Trick authored
them, but hopefully we won't. And this is not the right data structure to do it anyway. llvm-svn: 117412
-
- Oct 26, 2010
-
-
Andrew Trick authored
llvm-svn: 117384
-
- Oct 23, 2010
-
-
Chandler Carruth authored
was found by a GCC warning. ;] llvm-svn: 117199
-
Andrew Trick authored
framework. It's purpose is not to improve register allocation per se, but to make it easier to develop powerful live range splitting. I call it the basic allocator because it is as simple as a global allocator can be but provides the building blocks for sophisticated register allocation with live range splitting. A minimal implementation is provided that trivially spills whenever it runs out of registers. I'm checking in now to get high-level design and style feedback. I've only done minimal testing. The next step is implementing a "greedy" allocation algorithm that does some register reassignment and makes better splitting decisions. llvm-svn: 117174
-