- Feb 23, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11759
-
Alkis Evlogimenos authored
llvm-svn: 11755
-
Alkis Evlogimenos authored
Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr llvm-svn: 11738
-
Alkis Evlogimenos authored
Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consistent with the other two llvm-svn: 11723
-
Alkis Evlogimenos authored
llvm-svn: 11720
-
Alkis Evlogimenos authored
llvm-svn: 11719
-
- Feb 22, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11704
-
- Feb 20, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11659
-
Alkis Evlogimenos authored
llvm-svn: 11655
-
Alkis Evlogimenos authored
1. LiveIntervals now implement a 4 slot per instruction model. Load, Use, Def and a Store slot. This is required in order to correctly represent caller saved register clobbering on function calls, register reuse in the same instruction (def resues last use) and also spill code added later by the allocator. The previous representation (2 slots per instruction) was insufficient and as a result was causing subtle bugs. 2. Fixes in spill code generation. This was the major cause of failures in the test suite. 3. Linear scan now has core support for folding memory operands. This is untested and not enabled (the live interval update function does not attempt to fold loads/stores in instructions). 4. Lots of improvements in the debugging output of both live intervals and linear scan. Give it a try... it is beautiful :-) In summary the above fixes all the issues with the recent reserved register elimination changes and get the allocator very close to the next big step: folding memory operands. llvm-svn: 11654
-
- Feb 19, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11629
-
Alkis Evlogimenos authored
llvm-svn: 11619
-
Alkis Evlogimenos authored
llvm-svn: 11609
-
- Feb 15, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11476
-
- Feb 14, 2004
-
-
Alkis Evlogimenos authored
std::numeric_limits<float>::max() for weighting preallocated intervals. llvm-svn: 11427
-
- Feb 13, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11393
-
- Feb 12, 2004
-
-
Alkis Evlogimenos authored
ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. llvm-svn: 11340
-
- Feb 10, 2004
-
-
Chris Lattner authored
llvm-svn: 11283
-
- Feb 06, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11151
-
Alkis Evlogimenos authored
of the virtual register to certain functions. llvm-svn: 11143
-
- Feb 04, 2004
-
-
Alkis Evlogimenos authored
operand of the instruction and thus simplify the register allocation. llvm-svn: 11124
-
- Feb 03, 2004
-
-
Alkis Evlogimenos authored
spilled, A was loaded from its stack location twice. This fixes the bug. llvm-svn: 11093
-
- Feb 02, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11088
-
Alkis Evlogimenos authored
much better when I get rid of the reserved registers. llvm-svn: 11066
-
- Feb 01, 2004
-
-
Alkis Evlogimenos authored
registers (not as the max number of registers). Change toSpill from a std::set into a std::vector<bool>. Use the reverse iterator adapter to do a reverse scan of allocatable registers. llvm-svn: 11061
-
Alkis Evlogimenos authored
where appropriate. llvm-svn: 11060
-
Alkis Evlogimenos authored
MRegisterInfo::isVirtualRegister. llvm-svn: 11045
-
- Jan 23, 2004
-
-
Alkis Evlogimenos authored
is a move between two registers, at least one of the registers is virtual and the two live intervals do not overlap. This results in about 40% reduction in intervals, 30% decrease in the register allocators running time and a 20% increase in peephole optimizations (mainly move eliminations). The option can be enabled by passing -join-liveintervals where appropriate. llvm-svn: 10965
-
- Jan 22, 2004
-
-
Alkis Evlogimenos authored
with the current one. llvm-svn: 10959
-
Alkis Evlogimenos authored
virtReg lives on the stack. Now a virtual register has an entry in the virtual->physical map or the virtual->stack slot map but never in both. llvm-svn: 10958
-
- Jan 16, 2004
-
-
Alkis Evlogimenos authored
register yet (2nd try). llvm-svn: 10896
-
Alkis Evlogimenos authored
register yet. llvm-svn: 10895
-
Alkis Evlogimenos authored
LiveIntervals::Interval::expiredAt() and simplify regalloc code. llvm-svn: 10894
-
- Jan 14, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 10834
-
- Jan 13, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 10820
-
Alkis Evlogimenos authored
overlap before adding their spill weight. llvm-svn: 10819
-
- Jan 07, 2004
-
-
Alkis Evlogimenos authored
of the register allocator as follows: before after mesa 2.3790 1.5994 vpr 2.6008 1.2078 gcc 1.9840 0.5273 mcf 0.2569 0.0470 eon 1.8468 1.4359 twolf 0.9475 0.2004 burg 1.6807 1.3300 lambda 1.2191 0.3764 Speedups range anyware from 30% to over 400% :-) llvm-svn: 10712
-
Alkis Evlogimenos authored
llvm-svn: 10711
-
Alkis Evlogimenos authored
llvm-svn: 10710
-
- Jan 05, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 10695
-