mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Added a TargetRegisterInfo interface for accessing register pressure sets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154375 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
176194d4ee
commit
decb37eb2b
@ -500,11 +500,29 @@ public:
|
||||
/// getRegPressureLimit - Return the register pressure "high water mark" for
|
||||
/// the specific register class. The scheduler is in high register pressure
|
||||
/// mode (for the specific register class) if it goes over the limit.
|
||||
///
|
||||
/// Note: this is the old register pressure model that relies on a manually
|
||||
/// specified representative register class per value type.
|
||||
virtual unsigned getRegPressureLimit(const TargetRegisterClass *RC,
|
||||
MachineFunction &MF) const {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// Get the weight in units of pressure for this register class.
|
||||
virtual unsigned getRegClassWeight(const TargetRegisterClass *RC) const = 0;
|
||||
|
||||
/// Get the number of dimensions of register pressure.
|
||||
virtual unsigned getNumRegPressureSets() const = 0;
|
||||
|
||||
/// Get the register unit pressure limit for this dimension.
|
||||
/// This limit must be adjusted dynamically for reserved registers.
|
||||
virtual unsigned getRegPressureSetLimit(unsigned Idx) const = 0;
|
||||
|
||||
/// Get the dimensions of register pressure impacted by this register class.
|
||||
/// Returns a -1 terminated array of pressure set IDs.
|
||||
virtual const int *getRegClassPressureSets(
|
||||
const TargetRegisterClass *RC) const = 0;
|
||||
|
||||
/// getRawAllocationOrder - Returns the register allocation order for a
|
||||
/// specified register class with a target-dependent hint. The returned list
|
||||
/// may contain reserved registers that cannot be allocated.
|
||||
|
Loading…
Reference in New Issue
Block a user