[PATCH] Specify the access behaviour of the memcpy, memmove and memset intrinsics
Arnaud Allard de Grandmaison
arnaud.adegm at gmail.com
Sun Feb 10 15:02:02 PST 2013
aadg added you to the CC list for the revision "Specify the access behaviour of the memcpy, memmove and memset intrinsics".
Hi chandlerc,
memcpy, memmove : set volatile on the source or destination operand, not on the intrinsic itself.
This means that memcpy and memove will now have 2 parameters : isSrcVolatile and isDestVolatile in place of isVolatile. For now, the old 'isVolatile' parameter is duplicated to form the is(Src|Dest)Volatile parameters in order to
preserve the actual behaviour.
The isVolatile and setVolatile method are still there for compatibility reasons, but should disappear as soon as all users have moved to the new interface.
Those changes requires some clang tests to be updated accordingly (see http://llvm-reviews.chandlerc.com/D376)
The update of all IR tests to use the new format is moved to a separate patch, as it is quite big and mechanical.
No functional change. The code in LLVM or Clang using the isVolatile part will be updated in subsequent patches. It is expected to bring some improvement as the old behaviour prevented some optimizations to kick-in.
http://llvm-reviews.chandlerc.com/D386
Files:
docs/LangRef.rst
include/llvm/IR/IntrinsicInst.h
include/llvm/IR/Intrinsics.td
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/IR/AutoUpgrade.cpp
lib/IR/IRBuilder.cpp
lib/IR/Verifier.cpp
lib/Target/ARM/ARMFastISel.cpp
lib/Transforms/Utils/InlineFunction.cpp
test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll
test/Assembler/auto_upgrade_intrinsics.ll
test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll
test/Transforms/InstCombine/objsize.ll
test/Transforms/InstCombine/sprintf-1.ll
test/Transforms/LoopIdiom/basic.ll
test/Transforms/MemCpyOpt/align.ll
test/Transforms/MemCpyOpt/smaller.ll
test/Verifier/2006-12-12-IntrinsicDefine.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D386.1.patch
Type: text/x-patch
Size: 26088 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130210/fdb643b2/attachment.bin>
More information about the llvm-commits
mailing list