Don't use a potentially expensive shift if all we want is one set bit.
[oota-llvm.git] / lib / Target / R600 / R600RegisterInfo.h
index c170ccb378a27b72b2724688c8985dda4c8ac47c..9b286ee3aba200aea096d818a2139f8d243ea67b 100644 (file)
 #ifndef R600REGISTERINFO_H_
 #define R600REGISTERINFO_H_
 
-#include "AMDGPUTargetMachine.h"
 #include "AMDGPURegisterInfo.h"
+#include "AMDGPUTargetMachine.h"
 
 namespace llvm {
 
 class R600TargetMachine;
-class TargetInstrInfo;
 
 struct R600RegisterInfo : public AMDGPURegisterInfo {
   AMDGPUTargetMachine &TM;
-  const TargetInstrInfo &TII;
+  RegClassWeight RCW;
 
-  R600RegisterInfo(AMDGPUTargetMachine &tm, const TargetInstrInfo &tii);
+  R600RegisterInfo(AMDGPUTargetMachine &tm);
 
   virtual BitVector getReservedRegs(const MachineFunction &MF) const;
 
@@ -48,6 +47,8 @@ struct R600RegisterInfo : public AMDGPURegisterInfo {
   /// (e.g. getSubRegFromChannel(0) -> AMDGPU::sel_x)
   unsigned getSubRegFromChannel(unsigned Channel) const;
 
+  virtual const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const;
+
 };
 
 } // End namespace llvm