R600/SI: switch back to RegPressure scheduling
authorChristian Konig <christian.koenig@amd.com>
Tue, 26 Mar 2013 14:04:02 +0000 (14:04 +0000)
committerChristian Konig <christian.koenig@amd.com>
Tue, 26 Mar 2013 14:04:02 +0000 (14:04 +0000)
Signed-off-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178021 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/R600/SIISelLowering.cpp
lib/Target/R600/SIRegisterInfo.cpp
lib/Target/R600/SIRegisterInfo.h

index c4cdccc8eabc958b42e07d8e308334285bc2f950..f75f5d42754d83ad100b0e282f38dc7822a078e9 100644 (file)
@@ -74,7 +74,7 @@ SITargetLowering::SITargetLowering(TargetMachine &TM) :
 
   setTargetDAGCombine(ISD::SETCC);
 
-  setSchedulingPreference(Sched::Source);
+  setSchedulingPreference(Sched::RegPressure);
 }
 
 SDValue SITargetLowering::LowerFormalArguments(
index 88275c523f771da15bff68d87a07bf31e97ef09e..99278ae8dceb7eef07ab25a97a6d9bcaa32fc00f 100644 (file)
@@ -30,6 +30,11 @@ BitVector SIRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
   return Reserved;
 }
 
+unsigned SIRegisterInfo::getRegPressureLimit(const TargetRegisterClass *RC,
+                                             MachineFunction &MF) const {
+  return RC->getNumRegs();
+}
+
 const TargetRegisterClass *
 SIRegisterInfo::getISARegClass(const TargetRegisterClass * rc) const {
   switch (rc->getID()) {
index 40171e4450e7c9e06c82ddbc16fa59ecd34ab3bd..caec22841345122a99331d0b1b6248da9a188ed6 100644 (file)
@@ -31,6 +31,9 @@ struct SIRegisterInfo : public AMDGPURegisterInfo {
 
   virtual BitVector getReservedRegs(const MachineFunction &MF) const;
 
+  virtual unsigned getRegPressureLimit(const TargetRegisterClass *RC,
+                                       MachineFunction &MF) const;
+
   /// \param RC is an AMDIL reg class.
   ///
   /// \returns the SI register class that is equivalent to \p RC.