Enable printing of immediates that do not fit in 16-bit. .cprestore can have
[oota-llvm.git] / lib / Target / PTX / PTXInstrInfo.h
index 84f1ce4baf3b475d0e4a6ccf818e275f1c4d606d..a04be7728f88bca947ad9a16050a0cc4354e91d2 100644 (file)
@@ -70,6 +70,20 @@ public:
   // PTX is fully-predicable
   virtual bool isPredicable(MachineInstr *MI) const { return true; }
 
+  // branch support
+
+  virtual bool AnalyzeBranch(MachineBasicBlock &MBB, MachineBasicBlock *&TBB,
+                             MachineBasicBlock *&FBB,
+                             SmallVectorImpl<MachineOperand> &Cond,
+                             bool AllowModify = false) const;
+
+  virtual unsigned RemoveBranch(MachineBasicBlock &MBB) const;
+
+  virtual unsigned InsertBranch(MachineBasicBlock &MBB, MachineBasicBlock *TBB,
+                                MachineBasicBlock *FBB,
+                                const SmallVectorImpl<MachineOperand> &Cond,
+                                DebugLoc DL) const;
+
   // static helper routines
 
   static MachineSDNode *GetPTXMachineNode(SelectionDAG *DAG, unsigned Opcode,
@@ -81,6 +95,12 @@ public:
                                           SDValue Op1, SDValue Op2);
 
   static void AddDefaultPredicate(MachineInstr *MI);
+
+  static bool IsAnyKindOfBranch(const MachineInstr& inst);
+
+  static bool IsAnySuccessorAlsoLayoutSuccessor(const MachineBasicBlock& MBB);
+
+  static MachineBasicBlock *GetBranchTarget(const MachineInstr& inst);
 }; // class PTXInstrInfo
 } // namespace llvm