LLVM: include/llvm/CodeGen/Spiller.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_CODEGEN_SPILLER_H
10#define LLVM_CODEGEN_SPILLER_H
11
14
15namespace llvm {
16
28
29
30
31
32
34 virtual void anchor();
35
36public:
38
39
41
42
44
45
46
48
50
57};
58
59
60
65
66}
67
68#endif
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
MachineBlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate machine basic b...
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
Spiller interface.
Definition Spiller.h:33
virtual ArrayRef< Register > getReplacedRegs()=0
Return registers that were not spilled, but otherwise replaced (e.g.
virtual ArrayRef< Register > getSpilledRegs()=0
Return the registers that were spilled.
virtual void postOptimization()
Definition Spiller.h:49
virtual void spill(LiveRangeEdit &LRE, AllocationOrder *Order=nullptr)=0
spill - Spill the LRE.getParent() live interval.
Calculate auxiliary information for a virtual register such as its spill weight and allocation hint.
This is an optimization pass for GlobalISel generic memory operations.
Spiller * createInlineSpiller(const Spiller::RequiredAnalyses &Analyses, MachineFunction &MF, VirtRegMap &VRM, VirtRegAuxInfo &VRAI, LiveRegMatrix *Matrix=nullptr)
Create and return a spiller that will insert spill code directly instead of deferring though VirtRegM...
const MachineBlockFrequencyInfo & MBFI
Definition Spiller.h:55
MachineDominatorTree & MDT
Definition Spiller.h:54
LiveIntervals & LIS
Definition Spiller.h:52
LiveStacks & LSS
Definition Spiller.h:53