9#ifndef LLVM_CODEGEN_REGALLOCPRIORITYADVISOR_H
10#define LLVM_CODEGEN_REGALLOCPRIORITYADVISOR_H
56 unsigned getPriority(
const LiveInterval &LI)
const override;
68 virtual std::unique_ptr<RegAllocPriorityAdvisor>
aarch64 AArch64 CCMP Pass
SI optimize exec mask operations pre RA
Represent the analysis usage information of a pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
DefaultPriorityAdvisor(const MachineFunction &MF, const RAGreedy &RA, SlotIndexes *const Indexes)
ImmutablePass class - This class is used to provide information that does not need to be run.
LiveInterval - This class represents the liveness of a register, or stack slot.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
RegAllocPriorityAdvisorAnalysis(AdvisorMode Mode)
AdvisorMode getAdvisorMode() const
virtual void logRewardIfNeeded(const MachineFunction &MF, llvm::function_ref< float()> GetReward)
virtual std::unique_ptr< RegAllocPriorityAdvisor > getAdvisor(const MachineFunction &MF, const RAGreedy &RA)=0
Get an advisor for the given context (i.e. machine function, etc)
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Interface to the priority advisor, which is responsible for prioritizing live ranges.
const RegisterClassInfo & RegClassInfo
MachineRegisterInfo *const MRI
RegAllocPriorityAdvisor(const RegAllocPriorityAdvisor &)=delete
const bool RegClassPriorityTrumpsGlobalness
RegAllocPriorityAdvisor(RegAllocPriorityAdvisor &&)=delete
const bool ReverseLocalAssignment
virtual ~RegAllocPriorityAdvisor()=default
SlotIndexes *const Indexes
virtual unsigned getPriority(const LiveInterval &LI) const =0
Find the priority value for a live range.
const TargetRegisterInfo *const TRI
StringRef - Represent a constant reference to a string, i.e.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
RegAllocPriorityAdvisorAnalysis * createReleaseModePriorityAdvisor()
RegAllocPriorityAdvisorAnalysis * createDevelopmentModePriorityAdvisor()
Pass * callDefaultCtor< RegAllocPriorityAdvisorAnalysis >()
Specialization for the API used by the analysis infrastructure to create an instance of the priority ...