summaryrefslogtreecommitdiff
path: root/include/llvm/IntrinsicInst.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-03 00:00:25 +0000
committerChris Lattner <sabre@nondot.org>2006-03-03 00:00:25 +0000
commit03dd4652158f8a4c1db65f066195342d4a3695a7 (patch)
treedf746a0a2881f754162e04bbf46f89477d6c732f /include/llvm/IntrinsicInst.h
parentbad08000f11f9aed65e0e18b8ccf827d16401a42 (diff)
downloadllvm-03dd4652158f8a4c1db65f066195342d4a3695a7.tar.gz
llvm-03dd4652158f8a4c1db65f066195342d4a3695a7.tar.bz2
llvm-03dd4652158f8a4c1db65f066195342d4a3695a7.tar.xz
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
PR709, and paving the way for future progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/IntrinsicInst.h')
-rw-r--r--include/llvm/IntrinsicInst.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/include/llvm/IntrinsicInst.h b/include/llvm/IntrinsicInst.h
index 517cc3d5f1..775726d42a 100644
--- a/include/llvm/IntrinsicInst.h
+++ b/include/llvm/IntrinsicInst.h
@@ -148,9 +148,12 @@ namespace llvm {
static inline bool classof(const MemIntrinsic *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
switch (I->getIntrinsicID()) {
- case Intrinsic::memcpy:
- case Intrinsic::memmove:
- case Intrinsic::memset:
+ case Intrinsic::memcpy_i32:
+ case Intrinsic::memcpy_i64:
+ case Intrinsic::memmove_i32:
+ case Intrinsic::memmove_i64:
+ case Intrinsic::memset_i32:
+ case Intrinsic::memset_i64:
return true;
default: return false;
}
@@ -183,7 +186,8 @@ namespace llvm {
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MemCpyInst *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
- return I->getIntrinsicID() == Intrinsic::memcpy;
+ return I->getIntrinsicID() == Intrinsic::memcpy_i32 ||
+ I->getIntrinsicID() == Intrinsic::memcpy_i64;
}
static inline bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
@@ -211,14 +215,15 @@ namespace llvm {
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MemMoveInst *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
- return I->getIntrinsicID() == Intrinsic::memmove;
+ return I->getIntrinsicID() == Intrinsic::memmove_i32 ||
+ I->getIntrinsicID() == Intrinsic::memmove_i64;
}
static inline bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
}
};
- /// MemSetInst - This class wraps the llvm.memcpy intrinsic.
+ /// MemSetInst - This class wraps the llvm.memset intrinsic.
///
struct MemSetInst : public MemIntrinsic {
/// get* - Return the arguments to the instruction.
@@ -234,7 +239,8 @@ namespace llvm {
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const MemSetInst *) { return true; }
static inline bool classof(const IntrinsicInst *I) {
- return I->getIntrinsicID() == Intrinsic::memset;
+ return I->getIntrinsicID() == Intrinsic::memset_i32 ||
+ I->getIntrinsicID() == Intrinsic::memset_i64;
}
static inline bool classof(const Value *V) {
return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));