[PATCH] D103992: [InstCombine / BuildLibCalls] Add parameter attributes from the prototype.

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 20 12:24:08 PDT 2021


jonpa updated this revision to Diff 353238.
jonpa marked 2 inline comments as done.
jonpa added a comment.

> Can we just completely skip transferring the attributes to the memcpy?

Yes indeed - I removed takeAttributesFrom() and this seemed to not make much of a difference at all, except for what was updated in some InstCombine tests (SPEC17 is at least on SystemZ unaffected by this). In these test updates, I don't see any lost attributes.

There are also other calls, such as CreateMemSet()/CreateMemMove() that still take all the attributes in the same way from the original CallInst... Maybe these should be removed now as well, or are they different?

I see in LibCallSimplifier::optimizeStrNCpy() a transfer of the parameter attributes only, which may make sense though...


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D103992/new/

https://reviews.llvm.org/D103992

Files:
  llvm/lib/Transforms/Utils/BuildLibCalls.cpp
  llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
  llvm/test/CodeGen/X86/no-plt-libcalls.ll
  llvm/test/Other/cgscc-libcall-update.ll
  llvm/test/Transforms/InstCombine/2010-05-30-memcpy-Struct.ll
  llvm/test/Transforms/InstCombine/ARM/strcmp.ll
  llvm/test/Transforms/InstCombine/debug-line.ll
  llvm/test/Transforms/InstCombine/exp2-1.ll
  llvm/test/Transforms/InstCombine/fdiv-cos-sin.ll
  llvm/test/Transforms/InstCombine/fdiv-sin-cos.ll
  llvm/test/Transforms/InstCombine/float-shrink-compare.ll
  llvm/test/Transforms/InstCombine/fortify-folding.ll
  llvm/test/Transforms/InstCombine/fprintf-1.ll
  llvm/test/Transforms/InstCombine/fputs-1.ll
  llvm/test/Transforms/InstCombine/fputs-opt-size.ll
  llvm/test/Transforms/InstCombine/fwrite-1.ll
  llvm/test/Transforms/InstCombine/libcall-param-attrs.ll
  llvm/test/Transforms/InstCombine/memcmp-1.ll
  llvm/test/Transforms/InstCombine/mempcpy.ll
  llvm/test/Transforms/InstCombine/memset-1.ll
  llvm/test/Transforms/InstCombine/memset_chk-1.ll
  llvm/test/Transforms/InstCombine/objsize.ll
  llvm/test/Transforms/InstCombine/pow_fp_int.ll
  llvm/test/Transforms/InstCombine/pow_fp_int16.ll
  llvm/test/Transforms/InstCombine/printf-1.ll
  llvm/test/Transforms/InstCombine/printf-2.ll
  llvm/test/Transforms/InstCombine/printf-3.ll
  llvm/test/Transforms/InstCombine/puts-1.ll
  llvm/test/Transforms/InstCombine/realloc.ll
  llvm/test/Transforms/InstCombine/simplify-libcalls.ll
  llvm/test/Transforms/InstCombine/sprintf-1.ll
  llvm/test/Transforms/InstCombine/sqrt.ll
  llvm/test/Transforms/InstCombine/stpcpy-1.ll
  llvm/test/Transforms/InstCombine/stpcpy_chk-1.ll
  llvm/test/Transforms/InstCombine/strchr-1.ll
  llvm/test/Transforms/InstCombine/strcmp-1.ll
  llvm/test/Transforms/InstCombine/strcmp-memcmp.ll
  llvm/test/Transforms/InstCombine/strcpy-1.ll
  llvm/test/Transforms/InstCombine/strcpy_chk-1.ll
  llvm/test/Transforms/InstCombine/strcspn-1.ll
  llvm/test/Transforms/InstCombine/strncat-2.ll
  llvm/test/Transforms/InstCombine/strncpy-1.ll
  llvm/test/Transforms/InstCombine/strncpy_chk-1.ll
  llvm/test/Transforms/InstCombine/strndup.ll
  llvm/test/Transforms/InstCombine/strstr-1.ll
  llvm/test/Transforms/MergeICmps/X86/alias-merge-blocks.ll
  llvm/test/Transforms/MergeICmps/X86/entry-block-shuffled.ll
  llvm/test/Transforms/MergeICmps/X86/gep-references-bb.ll
  llvm/test/Transforms/MergeICmps/X86/int64-and-ptr.ll
  llvm/test/Transforms/MergeICmps/X86/multiple-blocks-does-work.ll
  llvm/test/Transforms/MergeICmps/X86/pair-int32-int32.ll
  llvm/test/Transforms/MergeICmps/X86/pr41917.ll
  llvm/test/Transforms/MergeICmps/X86/split-block-does-work.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103992.353238.patch
Type: text/x-patch
Size: 138741 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210620/7dade7bb/attachment-0001.bin>


More information about the llvm-commits mailing list