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