llvm-6502/include/llvm/CodeGen
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
..
AsmPrinter.h Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied 2007-11-14 09:18:41 +00:00
BreakCriticalMachineEdge.h Wow. I definitely shouldn't write code when I'm tird. 2007-11-13 19:56:28 +00:00
CallingConvLower.h
Collector.h Collector is the base class for garbage collection code generators. 2007-09-29 02:13:43 +00:00
CollectorMetadata.h
Collectors.h
DwarfWriter.h
ELFRelocation.h
FileWriters.h
IntrinsicLowering.h
LinkAllCodegenComponents.h Remove simple scheduler. 2007-10-01 20:44:07 +00:00
LiveInterval.h Update comments. 2007-10-17 02:16:40 +00:00
LiveIntervalAnalysis.h Live interval splitting: 2007-11-17 00:40:40 +00:00
LiveVariables.h Live interval splitting: 2007-11-17 00:40:40 +00:00
MachineBasicBlock.h
MachineCodeEmitter.h
MachineConstantPool.h
MachineDominators.h Fix MachineDominators' getAnalysisUsage. 2007-11-08 01:22:53 +00:00
MachineFrameInfo.h
MachineFunction.h
MachineFunctionPass.h
MachineInstr.h Shrinkfy. 2007-11-17 00:31:16 +00:00
MachineInstrBuilder.h Clean up sub-register implementation by moving subReg information back to 2007-11-14 07:59:08 +00:00
MachineJumpTableInfo.h Compile fix. 2007-11-12 13:43:23 +00:00
MachineLocation.h
MachineModuleInfo.h
MachinePassRegistry.h
MachineRelocation.h
MachORelocation.h
Passes.h As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need 2007-11-12 01:05:09 +00:00
RegAllocRegistry.h
RegisterCoalescer.h Cosmetic. 2007-10-12 08:40:44 +00:00
RegisterScavenging.h
RuntimeLibcalls.h More ppcf128 issues (maybe the last)? 2007-10-19 00:59:18 +00:00
SchedGraphCommon.h
ScheduleDAG.h If a node that defines a physical register that is expensive to copy. The 2007-10-05 01:39:18 +00:00
SchedulerRegistry.h
SelectionDAG.h Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack 2007-11-13 00:44:25 +00:00
SelectionDAGISel.h
SelectionDAGNodes.h Implement necessary bits for flt_rounds gcc builtin. 2007-11-15 23:25:33 +00:00
SSARegMap.h Clean up sub-register implementation by moving subReg information back to 2007-11-14 07:59:08 +00:00
ValueTypes.h Fix some load/store logic that would be wrong for 2007-11-09 08:57:19 +00:00
ValueTypes.td