aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/Signals.cpp
diff options
context:
space:
mode:
authorAlkis Evlogimenos <alkis@evlogimenos.com>2004-02-20 06:15:40 +0000
committerAlkis Evlogimenos <alkis@evlogimenos.com>2004-02-20 06:15:40 +0000
commit76eca062eaf01f0223ba89c7370b84fc153d22a2 (patch)
tree9ca67e8d39b39a70fc54361760c7a1d7ad29efb2 /llvm/lib/Support/Signals.cpp
parent3aee2f04d93586a9df4ae02f1e88eb143bed23af (diff)
downloadllvm-76eca062eaf01f0223ba89c7370b84fc153d22a2.zip
llvm-76eca062eaf01f0223ba89c7370b84fc153d22a2.tar.gz
llvm-76eca062eaf01f0223ba89c7370b84fc153d22a2.tar.bz2
Too many changes in one commit:
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
Diffstat (limited to 'llvm/lib/Support/Signals.cpp')
0 files changed, 0 insertions, 0 deletions