[PATCH] D59936: SimplifyCFG SinkCommonCodeFromPredecessors: Also sink function calls without used results (PR41259)

Hans Wennborg via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 28 07:56:50 PDT 2019


hans created this revision.
hans added reviewers: jmolloy, manmanren.
Herald added subscribers: hiraditya, javed.absar.
Herald added a project: LLVM.

The code was previously checking that candidates for sinking had exactly one use or were a store instruction (which can't have uses). This meant we could sink call instructions only if they had a use.

That limitation seemed a bit arbitrary, so this patch changes it to "instruction has zero or one use" which seems more natural and removes the need to special-case stores.

Please take a look!


https://reviews.llvm.org/D59936

Files:
  clang/test/CodeGenCXX/nrvo.cpp
  clang/test/CodeGenCXX/stack-reuse-exceptions.cpp
  clang/test/CodeGenObjC/exceptions.m
  llvm/lib/Transforms/Utils/SimplifyCFG.cpp
  llvm/test/CodeGen/AArch64/max-jump-table.ll
  llvm/test/CodeGen/AArch64/min-jump-table.ll
  llvm/test/CodeGen/AArch64/win64-jumptable.ll
  llvm/test/CodeGen/ARM/cmpxchg-idioms.ll
  llvm/test/Transforms/SimplifyCFG/sink-common-code.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D59936.192635.patch
Type: text/x-patch
Size: 13915 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190328/0a080652/attachment.bin>


More information about the llvm-commits mailing list