aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-08-24 21:02:42 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-08-24 21:02:42 +0000
commit2730a38485af1bf0ddb3ca714e89925122f1104f (patch)
treefaf5ae966906b221aa52b75b167b590013c79775
parent74c83e44fa1f6ef545be4b0ccbfc903818ef6ae9 (diff)
Added support for type inquiry in subclasses of InstTreeNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3502 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/InstrForest.h36
1 files changed, 35 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/InstrForest.h b/include/llvm/CodeGen/InstrForest.h
index 79780e0ab8..4ceca6e04e 100644
--- a/include/llvm/CodeGen/InstrForest.h
+++ b/include/llvm/CodeGen/InstrForest.h
@@ -159,7 +159,7 @@ public:
}
void dump(int dumpChildren, int indent) const;
-
+
protected:
virtual void dumpNode(int indent) const = 0;
@@ -181,6 +181,12 @@ public:
void markFoldedIntoParent() { codeIsFoldedIntoParent = true; }
bool isFoldedIntoParent() { return codeIsFoldedIntoParent; }
+
+ // Methods to support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const InstructionNode *N) { return true; }
+ static inline bool classof(const InstrTreeNode *N) {
+ return N->getNodeType() == InstrTreeNode::NTInstructionNode;
+ }
protected:
virtual void dumpNode(int indent) const;
@@ -192,6 +198,13 @@ public:
VRegListNode() : InstrTreeNode(NTVRegListNode, 0) {
opLabel = VRegListOp;
}
+
+ // Methods to support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const VRegListNode *N) { return true; }
+ static inline bool classof(const InstrTreeNode *N) {
+ return N->getNodeType() == InstrTreeNode::NTVRegListNode;
+ }
+
protected:
virtual void dumpNode(int indent) const;
};
@@ -202,6 +215,13 @@ public:
VRegNode(Value* _val) : InstrTreeNode(NTVRegNode, _val) {
opLabel = VRegNodeOp;
}
+
+ // Methods to support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const VRegNode *N) { return true; }
+ static inline bool classof(const InstrTreeNode *N) {
+ return N->getNodeType() == InstrTreeNode::NTVRegNode;
+ }
+
protected:
virtual void dumpNode(int indent) const;
};
@@ -214,6 +234,13 @@ public:
opLabel = ConstantNodeOp;
}
Constant *getConstVal() const { return (Constant*) val;}
+
+ // Methods to support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const ConstantNode *N) { return true; }
+ static inline bool classof(const InstrTreeNode *N) {
+ return N->getNodeType() == InstrTreeNode::NTConstNode;
+ }
+
protected:
virtual void dumpNode(int indent) const;
};
@@ -226,6 +253,13 @@ public:
}
BasicBlock *getBasicBlock() const { return (BasicBlock*)val;}
+
+ // Methods to support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const LabelNode *N) { return true; }
+ static inline bool classof(const InstrTreeNode *N) {
+ return N->getNodeType() == InstrTreeNode::NTLabelNode;
+ }
+
protected:
virtual void dumpNode(int indent) const;
};