Add methods to support type inquiry. Rename TmpInstruction values.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 24 Mar 2002 03:56:55 +0000 (03:56 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 24 Mar 2002 03:56:55 +0000 (03:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1978 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/InstrSelection.h

index 4d5e497dca319a7c4b2aab40495f7496b36d27c3..91bc8f2a8cf616f50b3f1df07d67963700062dd4 100644 (file)
@@ -88,10 +88,6 @@ public:
     Operands.push_back(Use(s1, this));  // s1 must be nonnull
     if (s2) {
       Operands.push_back(Use(s2, this));
-#if 0
-      assert(s2->getType() == getType() &&
-             "TmpInstruction operand types do not match!");
-#endif
     }
   }
   
@@ -100,13 +96,22 @@ public:
   TmpInstruction(const Type *Ty, Value *s1 = 0, Value* s2 = 0,
                  const std::string &name = "")
     : Instruction(Ty, Instruction::UserOp1, name) {
-    if (s1) { Operands.push_back(Use(s1, this)); /*assert(s1->getType() == Ty);*/ }
-    if (s2) { Operands.push_back(Use(s2, this)); /*assert(s2->getType() == Ty);*/ }
+    if (s1) { Operands.push_back(Use(s1, this)); }
+    if (s2) { Operands.push_back(Use(s2, this)); }
   }
   
   virtual Instruction *clone() const { return new TmpInstruction(*this); }
   virtual const char *getOpcodeName() const {
-    return "TemporaryInstruction";
+    return "TempValueForMachineInstr";
+  }
+  
+  // Methods for support type inquiry through isa, cast, and dyn_cast:
+  static inline bool classof(const TmpInstruction *) { return true; }
+  static inline bool classof(const Instruction *I) {
+    return (I->getOpcode() == Instruction::UserOp1);
+  }
+  static inline bool classof(const Value *V) {
+    return isa<Instruction>(V) && classof(cast<Instruction>(V));
   }
 };