[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