15#ifndef LLVM_CODEGEN_PBQPRACONSTRAINT_H
16#define LLVM_CODEGEN_PBQPRACONSTRAINT_H
44 virtual void anchor();
59 for (
auto &
C : Constraints)
65 Constraints.push_back(std::move(
C));
69 std::vector<std::unique_ptr<PBQPRAConstraint>> Constraints;
71 void anchor()
override;
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
static cl::opt< RegisterRegAlloc::FunctionPassCtor, false, RegisterPassParser< RegisterRegAlloc > > RegAlloc("regalloc", cl::Hidden, cl::init(&useDefaultRegisterAllocator), cl::desc("Register allocator to use"))
PBQP register allocation constraint composer.
PBQPRAConstraintList & operator=(const PBQPRAConstraintList &)=delete
void addConstraint(std::unique_ptr< PBQPRAConstraint > C)
PBQPRAConstraintList()=default
void apply(PBQPRAGraph &G) override
PBQPRAConstraintList(const PBQPRAConstraintList &)=delete
Abstract base for classes implementing PBQP register allocation constraints (e.g.
virtual ~PBQPRAConstraint()=0
virtual void apply(PBQPRAGraph &G)=0
This is an optimization pass for GlobalISel generic memory operations.