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;
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.
Spiller & spiller() override
RABasic(const RegAllocFilterFunc F=nullptr)
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(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.
bool operator()(const LiveInterval *A, const LiveInterval *B) const