Capture information about whether the target instructions have delay slots
authorChris Lattner <sabre@nondot.org>
Tue, 28 Sep 2004 18:33:50 +0000 (18:33 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 28 Sep 2004 18:33:50 +0000 (18:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16550 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetInstrInfo.h

index d5f4b94d967a0e8a1e99e98a72e261977d85c057..fe4922a5ab08e398d7bf6754e6e7d89f29ae7738 100644 (file)
@@ -48,6 +48,7 @@ const unsigned M_BRANCH_FLAG          = 1 << 1;
 const unsigned M_CALL_FLAG             = 1 << 2;
 const unsigned M_RET_FLAG              = 1 << 3;
 const unsigned M_BARRIER_FLAG           = 1 << 4;
+const unsigned M_DELAY_SLOT             = 1 << 5;
 const unsigned M_CC_FLAG               = 1 << 6;
 const unsigned M_LOAD_FLAG             = 1 << 10;
 const unsigned M_STORE_FLAG            = 1 << 12;
@@ -193,6 +194,7 @@ public:
   bool isBarrier(MachineOpCode Opcode) const {
     return get(Opcode).Flags & M_BARRIER_FLAG;
   }
+
   bool isCall(MachineOpCode Opcode) const {
     return get(Opcode).Flags & M_CALL_FLAG;
   }
@@ -202,6 +204,13 @@ public:
   bool isStore(MachineOpCode Opcode) const {
     return get(Opcode).Flags & M_STORE_FLAG;
   }
+
+  /// hasDelaySlot - Returns true if the specified instruction has a delay slot
+  /// which must be filled by the code generator.
+  bool hasDelaySlot(unsigned Opcode) const {
+    return get(Opcode).Flags & M_DELAY_SLOT;
+  }
+
   virtual bool hasResultInterlock(MachineOpCode Opcode) const {
     return true;
   }