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>
llvm-svn: 178021

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

index c4cdccc..f75f5d4 100644 (file)
@@ -74,7 +74,7 @@ SITargetLowering::SITargetLowering(TargetMachine &TM) :
 
   setTargetDAGCombine(ISD::SETCC);
 
-  setSchedulingPreference(Sched::Source);
+  setSchedulingPreference(Sched::RegPressure);
 }
 
 SDValue SITargetLowering::LowerFormalArguments(
index 88275c5..99278ae 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 40171e4..caec228 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.