summaryrefslogtreecommitdiff
path: root/include/llvm
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-12-31 01:32:41 +0000
committerChris Lattner <sabre@nondot.org>2009-12-31 01:32:41 +0000
commit183912af7947e7c48da64d94b6fe78ebb09cc7ec (patch)
tree80dc31f61216f1ed0539fac2de63f09f456e42e2 /include/llvm
parent5d0cacdbb6577f2449986f345858db17dc1bcf59 (diff)
downloadllvm-183912af7947e7c48da64d94b6fe78ebb09cc7ec.tar.gz
llvm-183912af7947e7c48da64d94b6fe78ebb09cc7ec.tar.bz2
llvm-183912af7947e7c48da64d94b6fe78ebb09cc7ec.tar.xz
Remove #include of metadata.h from intrinsicinst.h. The only
method that needs it (DbgValueInst::getValue) has been moved out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92323 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/IntrinsicInst.h5
-rw-r--r--include/llvm/Value.h4
2 files changed, 5 insertions, 4 deletions
diff --git a/include/llvm/IntrinsicInst.h b/include/llvm/IntrinsicInst.h
index 9893e1f878..3c18de1067 100644
--- a/include/llvm/IntrinsicInst.h
+++ b/include/llvm/IntrinsicInst.h
@@ -25,7 +25,6 @@
#define LLVM_INTRINSICINST_H
#include "llvm/Constants.h"
-#include "llvm/Metadata.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
#include "llvm/Intrinsics.h"
@@ -175,9 +174,7 @@ namespace llvm {
/// DbgValueInst - This represents the llvm.dbg.value instruction.
///
struct DbgValueInst : public DbgInfoIntrinsic {
- Value *getValue() const {
- return cast<MDNode>(getOperand(1))->getOperand(0);
- }
+ Value *getValue() const;
Value *getOffset() const { return getOperand(2); }
MDNode *getVariable() const { return cast<MDNode>(getOperand(3)); }
diff --git a/include/llvm/Value.h b/include/llvm/Value.h
index 4d94a30191..f0bd8bea1e 100644
--- a/include/llvm/Value.h
+++ b/include/llvm/Value.h
@@ -42,6 +42,7 @@ class AssemblyAnnotationWriter;
class ValueHandleBase;
class LLVMContext;
class Twine;
+class MDNode;
//===----------------------------------------------------------------------===//
// Value Class
@@ -350,6 +351,9 @@ template <> inline bool isa_impl<GlobalValue, Value>(const Value &Val) {
return isa<GlobalVariable>(Val) || isa<Function>(Val) ||
isa<GlobalAlias>(Val);
}
+template <> inline bool isa_impl<MDNode, Value>(const Value &Val) {
+ return Val.getValueID() == Value::MDNodeVal;
+}
// Value* is only 4-byte aligned.