diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-03 00:00:25 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-03 00:00:25 +0000 |
commit | 03dd4652158f8a4c1db65f066195342d4a3695a7 (patch) | |
tree | df746a0a2881f754162e04bbf46f89477d6c732f /include/llvm/IntrinsicInst.h | |
parent | bad08000f11f9aed65e0e18b8ccf827d16401a42 (diff) | |
download | llvm-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.h | 20 |
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)); |