[PATCH] Specify the access behaviour of the memcpy, memmove and memset intrinsics
Arnaud Allard de Grandmaison
arnaud.adegm at gmail.com
Wed Feb 6 04:15:33 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
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.
Upgrade all tests but auto_upgrade_intrinsics to use the new format for memcpy/memmove : the isVolatile old argument is duplicated to isDestVolatile and isSrcVolatile.
Those changes requires some clang tests to be updated accordingly (see http://llvm-reviews.chandlerc.com/D376)
No functional change.
http://llvm-reviews.chandlerc.com/D375
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/BasicAA/modref.ll
test/Analysis/CallGraph/no-intrinsics.ll
test/Analysis/DependenceAnalysis/Preliminary.ll
test/Analysis/GlobalsModRef/pr12351.ll
test/Analysis/GlobalsModRef/volatile-instrs.ll
test/Analysis/ScalarEvolution/avoid-smax-1.ll
test/Analysis/ScalarEvolution/trip-count3.ll
test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll
test/Assembler/auto_upgrade_intrinsics.ll
test/CodeGen/ARM/2009-03-07-SpillerBug.ll
test/CodeGen/ARM/2012-04-24-SplitEHCriticalEdge.ll
test/CodeGen/ARM/crash-O0.ll
test/CodeGen/ARM/debug-info-blocks.ll
test/CodeGen/ARM/dyn-stackalloc.ll
test/CodeGen/ARM/fast-isel-intrinsic.ll
test/CodeGen/ARM/memcpy-inline.ll
test/CodeGen/ARM/memfunc.ll
test/CodeGen/Generic/invalid-memcpy.ll
test/CodeGen/Mips/2012-12-12-ExpandMemcpy.ll
test/CodeGen/Mips/biggot.ll
test/CodeGen/Mips/largeimmprinting.ll
test/CodeGen/Mips/memcpy.ll
test/CodeGen/Mips/mips64-sret.ll
test/CodeGen/Mips/tailcall.ll
test/CodeGen/PowerPC/2011-12-05-NoSpillDupCR.ll
test/CodeGen/PowerPC/2011-12-06-SpillAndRestoreCR.ll
test/CodeGen/PowerPC/ctrloop-reg.ll
test/CodeGen/PowerPC/emptystruct.ll
test/CodeGen/PowerPC/fsl-e500mc.ll
test/CodeGen/PowerPC/fsl-e5500.ll
test/CodeGen/PowerPC/structsinmem.ll
test/CodeGen/PowerPC/structsinregs.ll
test/CodeGen/Thumb/2011-05-11-DAGLegalizer.ll
test/CodeGen/Thumb/dyn-stackalloc.ll
test/CodeGen/Thumb2/2009-08-04-SubregLoweringBug.ll
test/CodeGen/Thumb2/2012-01-13-CBNZBug.ll
test/CodeGen/X86/2009-11-16-UnfoldMemOpBug.ll
test/CodeGen/X86/2010-04-08-CoalescerBug.ll
test/CodeGen/X86/2010-04-21-CoalescerBug.ll
test/CodeGen/X86/2010-09-17-SideEffectsInChain.ll
test/CodeGen/X86/alignment-2.ll
test/CodeGen/X86/fast-isel-call.ll
test/CodeGen/X86/fast-isel-x86-64.ll
test/CodeGen/X86/memcpy-2.ll
test/CodeGen/X86/memcpy.ll
test/CodeGen/X86/misched-new.ll
test/CodeGen/X86/optimize-max-0.ll
test/CodeGen/X86/pr11985.ll
test/CodeGen/X86/remat-fold-load.ll
test/CodeGen/X86/unaligned-load.ll
test/CodeGen/X86/unwindraise.ll
test/DebugInfo/2010-10-01-crash.ll
test/Instrumentation/MemorySanitizer/msan_basic.ll
test/JitListener/test-inline.ll
test/JitListener/test-parameters.ll
test/Other/lint.ll
test/Transforms/CorrelatedValuePropagation/non-null.ll
test/Transforms/DeadStoreElimination/2011-09-06-MemCpy.ll
test/Transforms/DeadStoreElimination/OverwriteStoreEnd.ll
test/Transforms/DeadStoreElimination/crash.ll
test/Transforms/DeadStoreElimination/memintrinsics.ll
test/Transforms/DeadStoreElimination/pr11390.ll
test/Transforms/DeadStoreElimination/simple.ll
test/Transforms/GVN/nonescaping-malloc.ll
test/Transforms/GVN/rle.ll
test/Transforms/GlobalOpt/memcpy.ll
test/Transforms/GlobalOpt/memset.ll
test/Transforms/Inline/inline-invoke-tail.ll
test/Transforms/InstCombine/2007-10-10-EliminateMemCpy.ll
test/Transforms/InstCombine/2009-02-20-InstCombine-SROA.ll
test/Transforms/InstCombine/2012-09-24-MemcpyFromGlobalCrash.ll
test/Transforms/InstCombine/alloca.ll
test/Transforms/InstCombine/malloc-free-delete.ll
test/Transforms/InstCombine/memcpy-from-global.ll
test/Transforms/InstCombine/memcpy-to-load.ll
test/Transforms/InstCombine/memcpy.ll
test/Transforms/InstCombine/memmove.ll
test/Transforms/InstCombine/objsize.ll
test/Transforms/InstCombine/sprintf-1.ll
test/Transforms/InstCombine/stack-overalign.ll
test/Transforms/InstCombine/struct-assign-tbaa.ll
test/Transforms/LoopIdiom/basic.ll
test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
test/Transforms/MemCpyOpt/2008-03-13-ReturnSlotBitcast.ll
test/Transforms/MemCpyOpt/align.ll
test/Transforms/MemCpyOpt/memcpy-to-memset.ll
test/Transforms/MemCpyOpt/memcpy.ll
test/Transforms/MemCpyOpt/memmove.ll
test/Transforms/MemCpyOpt/smaller.ll
test/Transforms/MemCpyOpt/sret.ll
test/Transforms/MergeFunc/vector.ll
test/Transforms/MetaRenamer/metarenamer.ll
test/Transforms/SROA/alignment.ll
test/Transforms/SROA/basictest.ll
test/Transforms/SROA/vector-promotion.ll
test/Transforms/ScalarRepl/2007-05-29-MemcpyPreserve.ll
test/Transforms/ScalarRepl/2008-06-22-LargeArray.ll
test/Transforms/ScalarRepl/2008-08-22-out-of-range-array-promote.ll
test/Transforms/ScalarRepl/2008-09-22-vector-gep.ll
test/Transforms/ScalarRepl/2009-03-04-MemCpyAlign.ll
test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll
test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll
test/Transforms/ScalarRepl/2011-05-06-CapturedAlloca.ll
test/Transforms/ScalarRepl/2011-11-11-EmptyStruct.ll
test/Transforms/ScalarRepl/address-space.ll
test/Transforms/ScalarRepl/badarray.ll
test/Transforms/ScalarRepl/copy-aggregate.ll
test/Transforms/ScalarRepl/crash.ll
test/Transforms/ScalarRepl/inline-vector.ll
test/Transforms/ScalarRepl/memset-aggregate.ll
test/Transforms/ScalarRepl/only-memcpy-uses.ll
test/Transforms/SimplifyLibCalls/MemCpy.ll
test/Verifier/2006-12-12-IntrinsicDefine.ll
test/Verifier/2008-08-22-MemCpyAlignment.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D375.1.patch
Type: text/x-patch
Size: 190360 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130206/1125daf8/attachment.bin>
More information about the llvm-commits
mailing list