LLVM: lib/CodeGen/RegAllocBasic.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_CODEGEN_REGALLOCBASIC_H
16#define LLVM_CODEGEN_REGALLOCBASIC_H
17
22#include
23
24namespace llvm {
25
28 return A->weight() < B->weight();
29 }
30};
31
32
33
34
35
36
40
42
43
44 std::unique_ptr SpillerInstance;
45 std::priority_queue<const LiveInterval *, std::vector<const LiveInterval *>,
47 Queue;
48
49
50
52
53 bool LRE_CanEraseVirtReg(Register) override;
54 void LRE_WillShrinkVirtReg(Register) override;
55
56public:
58
59
61
62
63 void getAnalysisUsage(AnalysisUsage &AU) const override;
64
65 void releaseMemory() override;
66
68
70
72 if (Queue.empty())
73 return nullptr;
75 Queue.pop();
76 return LI;
77 }
78
81
82
84
89
94
95
96
97
100
102};
103}
104#endif
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
#define LLVM_LIBRARY_VISIBILITY
Represent the analysis usage information of a pass.
LiveInterval - This class represents the liveness of a register, or stack slot.
Callback methods for LiveRangeEdit owners.
Wrapper class representing physical registers. Should be passed by value.
MachineFunctionPass(char &ID)
Properties which a MachineFunction may have at a given point in time.
MachineFunctionProperties & set(Property P)
const LiveInterval * dequeue() override
dequeue - Return the next unassigned register, or NULL.
Definition RegAllocBasic.h:71
Spiller & spiller() override
Definition RegAllocBasic.h:67
RABasic(const RegAllocFilterFunc F=nullptr)
void enqueueImpl(const LiveInterval *LI) override
enqueue - Add VirtReg to the priority queue of unassigned registers.
Definition RegAllocBasic.h:69
MachineFunctionProperties getClearedProperties() const override
Definition RegAllocBasic.h:90
static char ID
Definition RegAllocBasic.h:101
MachineFunctionProperties getRequiredProperties() const override
Definition RegAllocBasic.h:85
StringRef getPassName() const override
Return the pass name.
Definition RegAllocBasic.h:60
RegAllocBase(const RegAllocFilterFunc F=nullptr)
Wrapper class representing virtual and physical registers.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.
std::function< bool(const TargetRegisterInfo &TRI, const MachineRegisterInfo &MRI, const Register Reg)> RegAllocFilterFunc
Filter function for register classes during regalloc.
Definition RegAllocBasic.h:26
bool operator()(const LiveInterval *A, const LiveInterval *B) const
Definition RegAllocBasic.h:27