diff options
author | Mon P Wang <wangmp@apple.com> | 2010-04-04 03:10:48 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2010-04-04 03:10:48 +0000 |
commit | 20adc9dc4650313f017b27d9818eb2176238113d (patch) | |
tree | c81e72410ac01f2e03fd51beb30a6fa0220fe32b /include/llvm/IntrinsicInst.h | |
parent | 0c08d092049c025c9ccf7143e39f39dc4e30d6b4 (diff) | |
download | llvm-20adc9dc4650313f017b27d9818eb2176238113d.tar.gz llvm-20adc9dc4650313f017b27d9818eb2176238113d.tar.bz2 llvm-20adc9dc4650313f017b27d9818eb2176238113d.tar.xz |
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@100304 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 d86b33ef50..bd8a8c4e9d 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(); } |