llvm.org GIT mirror llvm / decb37e
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 Andrew Trick 8 years ago
1 changed file(s) with 18 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
499499 /// getRegPressureLimit - Return the register pressure "high water mark" for
500500 /// the specific register class. The scheduler is in high register pressure
501501 /// mode (for the specific register class) if it goes over the limit.
502 ///
503 /// Note: this is the old register pressure model that relies on a manually
504 /// specified representative register class per value type.
502505 virtual unsigned getRegPressureLimit(const TargetRegisterClass *RC,
503506 MachineFunction &MF) const {
504507 return 0;
505508 }
509
510 /// Get the weight in units of pressure for this register class.
511 virtual unsigned getRegClassWeight(const TargetRegisterClass *RC) const = 0;
512
513 /// Get the number of dimensions of register pressure.
514 virtual unsigned getNumRegPressureSets() const = 0;
515
516 /// Get the register unit pressure limit for this dimension.
517 /// This limit must be adjusted dynamically for reserved registers.
518 virtual unsigned getRegPressureSetLimit(unsigned Idx) const = 0;
519
520 /// Get the dimensions of register pressure impacted by this register class.
521 /// Returns a -1 terminated array of pressure set IDs.
522 virtual const int *getRegClassPressureSets(
523 const TargetRegisterClass *RC) const = 0;
506524
507525 /// getRawAllocationOrder - Returns the register allocation order for a
508526 /// specified register class with a target-dependent hint. The returned list