15#ifndef LLVM_CODEGEN_REGALLOCBASIC_H
16#define LLVM_CODEGEN_REGALLOCBASIC_H
28 return A->weight() <
B->weight();
44 std::unique_ptr<Spiller> SpillerInstance;
45 std::priority_queue<const LiveInterval *, std::vector<const LiveInterval *>,
53 bool LRE_CanEraseVirtReg(
Register)
override;
54 void LRE_WillShrinkVirtReg(
Register)
override;
65 void releaseMemory()
override;
87 MachineFunctionProperties::Property::NoPHIs);
92 MachineFunctionProperties::Property::IsSSA);
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
#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 - This class adapts the FunctionPass interface to allow convenient creation of pa...
Properties which a MachineFunction may have at a given point in time.
MachineFunctionProperties & set(Property P)
RABasic provides a minimal implementation of the basic register allocation algorithm.
const LiveInterval * dequeue() override
dequeue - Return the next unassigned register, or NULL.
Spiller & spiller() override
void enqueueImpl(const LiveInterval *LI) override
enqueue - Add VirtReg to the priority queue of unassigned registers.
MachineFunctionProperties getClearedProperties() const override
MachineFunctionProperties getRequiredProperties() const override
StringRef getPassName() const override
Return the pass name.
RegAllocBase provides the register allocation driver and interface that can be extended to add intere...
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.
bool operator()(const LiveInterval *A, const LiveInterval *B) const