aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-01-13 19:49:02 +0000
committerChris Lattner <sabre@nondot.org>2006-01-13 19:49:02 +0000
commit874357fa759c8d3b61fad1bcc73aab3e473ecd1a (patch)
treec2a2460cb7719b8b1ef2b00652127e6517435bf2
parentccca3ca85f046bf7c99aa954ac121fdf59722499 (diff)
Add some functionality to the IntrinsicInst class and some comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25289 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/IntrinsicInst.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/llvm/IntrinsicInst.h b/include/llvm/IntrinsicInst.h
index 2b26ad5215..90b3761a09 100644
--- a/include/llvm/IntrinsicInst.h
+++ b/include/llvm/IntrinsicInst.h
@@ -30,6 +30,9 @@
#include "llvm/Intrinsics.h"
namespace llvm {
+ /// IntrinsicInst - A useful wrapper class for inspecting calls to intrinsic
+ /// functions. This allows the standard isa/dyncast/cast functionality to
+ /// work with calls to intrinsic functions.
class IntrinsicInst : public CallInst {
IntrinsicInst(); // DO NOT IMPLEMENT
IntrinsicInst(const IntrinsicInst&); // DO NOT IMPLEMENT
@@ -40,6 +43,23 @@ namespace llvm {
/// casts from the specified value, returning the original uncasted value.
/// Note that the returned value is guaranteed to have pointer type.
static Value *StripPointerCasts(Value *Ptr);
+
+ /// getIntrinsicID - Return the intrinsic ID of this intrinsic.
+ ///
+ Intrinsic::ID getIntrinsicID() const {
+ return (Intrinsic::ID)getCalledFunction()->getIntrinsicID();
+ }
+
+ // Methods for support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const IntrinsicInst *) { return true; }
+ static inline bool classof(const CallInst *I) {
+ if (const Function *CF = I->getCalledFunction())
+ return CF->getIntrinsicID() != 0;
+ return false;
+ }
+ static inline bool classof(const Value *V) {
+ return isa<CallInst>(V) && classof(cast<CallInst>(V));
+ }
};
/// DbgInfoIntrinsic - This is the common base class for debug info intrinsics