llvm-6502/lib
Evan Cheng 81a0382181 Live interval splitting:
When a live interval is being spilled, rather than creating short, non-spillable
intervals for every def / use, split the interval at BB boundaries. That is, for
every BB where the live interval is defined or used, create a new interval that
covers all the defs and uses in the BB.

This is designed to eliminate one common problem: multiple reloads of the same
value in a single basic block. Note, it does *not* decrease the number of spills
since no copies are inserted so the split intervals are *connected* through
spill and reloads (or rematerialization). The newly created intervals can be
spilled again, in that case, since it does not span multiple basic blocks, it's
spilled in the usual manner. However, it can reuse the same stack slot as the
previously split interval.

This is currently controlled by -split-intervals-at-bb.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44198 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-17 00:40:40 +00:00
..
Analysis Fix for PR1801 2007-11-16 22:44:50 +00:00
Archive
AsmParser Basic non-power-of-2 vector support 2007-11-15 21:15:26 +00:00
Bitcode Removed debug #define that was accidentally checked in while debugging 2007-11-14 17:42:09 +00:00
CodeGen Live interval splitting: 2007-11-17 00:40:40 +00:00
Debugger switch this to bitcode instead of bytecode 2007-05-06 09:29:13 +00:00
ExecutionEngine
Linker
Support make smallptrset more const and type correct, which caught a few 2007-11-06 22:12:43 +00:00
System
Target Implement codegen for flt_rounds on x86 2007-11-16 01:31:51 +00:00
Transforms Fix PR1800 by correcting mistaken logic. 2007-11-16 06:04:17 +00:00
VMCore Basic non-power-of-2 vector support 2007-11-15 21:15:26 +00:00
Makefile