diff options
author | Mon P Wang <wangmp@apple.com> | 2010-04-02 18:04:15 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2010-04-02 18:04:15 +0000 |
commit | 703dd7c7eda9ffea68170bd9d8cdbc74322825dc (patch) | |
tree | d8d13ac711e9a0df3c65fd792c6cd834955925e1 /include/llvm/IntrinsicInst.h | |
parent | 9c0b8a8a72589ce295d0da96a0f0c8d0c917524f (diff) | |
download | external_llvm-703dd7c7eda9ffea68170bd9d8cdbc74322825dc.zip external_llvm-703dd7c7eda9ffea68170bd9d8cdbc74322825dc.tar.gz external_llvm-703dd7c7eda9ffea68170bd9d8cdbc74322825dc.tar.bz2 |
Reapply address space patch after fixing an issue in MemCopyOptimizer.
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100191 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/IntrinsicInst.h')
-rw-r--r-- | include/llvm/IntrinsicInst.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/llvm/IntrinsicInst.h b/include/llvm/IntrinsicInst.h index d86b33e..bd8a8c4 100644 --- a/include/llvm/IntrinsicInst.h +++ b/include/llvm/IntrinsicInst.h @@ -133,6 +133,13 @@ namespace llvm { return getAlignmentCst()->getZExtValue(); } + ConstantInt *getVolatileCst() const { + return cast<ConstantInt>(const_cast<Value*>(getOperand(5))); + } + bool isVolatile() const { + return getVolatileCst()->getZExtValue() != 0; + } + /// getDest - This is just like getRawDest, but it strips off any cast /// instructions that feed it, giving the original input. The returned /// value is guaranteed to be a pointer. @@ -155,7 +162,11 @@ namespace llvm { void setAlignment(Constant* A) { setOperand(4, A); } - + + void setVolatile(Constant* V) { + setOperand(5, V); + } + const Type *getAlignmentType() const { return getOperand(4)->getType(); } |