[PATCH] D122493: [slp] Delete dead scalar instructions feeding vectorized instructions

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 25 11:21:34 PDT 2022


reames created this revision.
reames added a reviewer: ABataev.
Herald added subscribers: asavonic, frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, niosHD, sabuasal, bollu, simoncook, johnrusso, rbar, asb, hiraditya, mcrosier, qcolombet, jholewinski.
Herald added a project: All.
reames requested review of this revision.
Herald added subscribers: pcwang-thead, MaskRay.
Herald added a project: LLVM.

If we vectorize a e.g. store, we leave around a bunch of getelementptrs for the individual scalar stores which we removed.  We can go ahead and delete them as well.

This is purely for test output quality and readability.  It should have no effect in any sane pipeline.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D122493

Files:
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/test/Transforms/SLPVectorizer/AArch64/64-bit-vector.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/commute.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/loadi8.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/matmul.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/memory-runtime-checks.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/reorder-fmuladd-crash.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/sdiv-pow2.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/slp-and-reduction.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/slp-or-reduction.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/slp-xor-reduction.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-di.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-order.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/tsc-s352.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-min-max.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
  llvm/test/Transforms/SLPVectorizer/AArch64/widen.ll
  llvm/test/Transforms/SLPVectorizer/NVPTX/v2f16.ll
  llvm/test/Transforms/SLPVectorizer/RISCV/rvv-min-vector-size.ll
  llvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR32086.ll
  llvm/test/Transforms/SLPVectorizer/X86/PR35628_1.ll
  llvm/test/Transforms/SLPVectorizer/X86/addsub.ll
  llvm/test/Transforms/SLPVectorizer/X86/align.ll
  llvm/test/Transforms/SLPVectorizer/X86/bottom-to-top-reorder.ll
  llvm/test/Transforms/SLPVectorizer/X86/broadcast.ll
  llvm/test/Transforms/SLPVectorizer/X86/broadcast_long.ll
  llvm/test/Transforms/SLPVectorizer/X86/cmp-as-alternate-ops.ll
  llvm/test/Transforms/SLPVectorizer/X86/combined-stores-chains.ll
  llvm/test/Transforms/SLPVectorizer/X86/consecutive-access.ll
  llvm/test/Transforms/SLPVectorizer/X86/continue_vectorizing.ll
  llvm/test/Transforms/SLPVectorizer/X86/control-dependence.ll
  llvm/test/Transforms/SLPVectorizer/X86/crash_vectorizeTree.ll
  llvm/test/Transforms/SLPVectorizer/X86/cse.ll
  llvm/test/Transforms/SLPVectorizer/X86/diamond.ll
  llvm/test/Transforms/SLPVectorizer/X86/diamond_broadcast.ll
  llvm/test/Transforms/SLPVectorizer/X86/diamond_broadcast_extra_shuffle.ll
  llvm/test/Transforms/SLPVectorizer/X86/different-vec-widths.ll
  llvm/test/Transforms/SLPVectorizer/X86/dot-product.ll
  llvm/test/Transforms/SLPVectorizer/X86/external_user_jumbled_load-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/external_user_jumbled_load.ll
  llvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
  llvm/test/Transforms/SLPVectorizer/X86/fmaxnum.ll
  llvm/test/Transforms/SLPVectorizer/X86/fminnum.ll
  llvm/test/Transforms/SLPVectorizer/X86/funclet.ll
  llvm/test/Transforms/SLPVectorizer/X86/gather-move-out-of-loop.ll
  llvm/test/Transforms/SLPVectorizer/X86/gep.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
  llvm/test/Transforms/SLPVectorizer/X86/horizontal.ll
  llvm/test/Transforms/SLPVectorizer/X86/insert-after-bundle.ll
  llvm/test/Transforms/SLPVectorizer/X86/insert-shuffle.ll
  llvm/test/Transforms/SLPVectorizer/X86/insertvalue.ll
  llvm/test/Transforms/SLPVectorizer/X86/inst_size_bug.ll
  llvm/test/Transforms/SLPVectorizer/X86/intrinsic_with_scalar_param.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-shuffle-placement.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-used-in-phi.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled-load.ll
  llvm/test/Transforms/SLPVectorizer/X86/jumbled_store_crash.ll
  llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
  llvm/test/Transforms/SLPVectorizer/X86/lookahead.ll
  llvm/test/Transforms/SLPVectorizer/X86/loopinvariant.ll
  llvm/test/Transforms/SLPVectorizer/X86/memory-runtime-checks.ll
  llvm/test/Transforms/SLPVectorizer/X86/opaque-ptr.ll
  llvm/test/Transforms/SLPVectorizer/X86/powof2div.ll
  llvm/test/Transforms/SLPVectorizer/X86/powof2mul.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr19657.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr23510.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr27163.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr35497.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr42022-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr42022.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr44067-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/pr44067.ll
  llvm/test/Transforms/SLPVectorizer/X86/propagate_ir_flags.ll
  llvm/test/Transforms/SLPVectorizer/X86/reduction_loads.ll
  llvm/test/Transforms/SLPVectorizer/X86/reduction_unrolled.ll
  llvm/test/Transforms/SLPVectorizer/X86/remark_extract_broadcast.ll
  llvm/test/Transforms/SLPVectorizer/X86/remark_horcost.ll
  llvm/test/Transforms/SLPVectorizer/X86/reorder_diamond_match.ll
  llvm/test/Transforms/SLPVectorizer/X86/resched.ll
  llvm/test/Transforms/SLPVectorizer/X86/return.ll
  llvm/test/Transforms/SLPVectorizer/X86/reuse-extracts-in-wider-vect.ll
  llvm/test/Transforms/SLPVectorizer/X86/revectorized_rdx_crash.ll
  llvm/test/Transforms/SLPVectorizer/X86/schedule_budget.ll
  llvm/test/Transforms/SLPVectorizer/X86/scheduling.ll
  llvm/test/Transforms/SLPVectorizer/X86/sext-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/sext.ll
  llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
  llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder2.ll
  llvm/test/Transforms/SLPVectorizer/X86/split-load8_2-unord.ll
  llvm/test/Transforms/SLPVectorizer/X86/stacksave-dependence.ll
  llvm/test/Transforms/SLPVectorizer/X86/store-jumbled.ll
  llvm/test/Transforms/SLPVectorizer/X86/stores-non-ordered.ll
  llvm/test/Transforms/SLPVectorizer/X86/stores_vectorize.ll
  llvm/test/Transforms/SLPVectorizer/X86/supernode.ll
  llvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
  llvm/test/Transforms/SLPVectorizer/X86/undef_vect.ll
  llvm/test/Transforms/SLPVectorizer/X86/unreachable.ll
  llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
  llvm/test/Transforms/SLPVectorizer/X86/vectorize-cmps.ll
  llvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-alt-shuffle.ll
  llvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll
  llvm/test/Transforms/SLPVectorizer/X86/vectorize-reordered-list.ll
  llvm/test/Transforms/SLPVectorizer/X86/zext-inseltpoison.ll
  llvm/test/Transforms/SLPVectorizer/X86/zext.ll
  llvm/test/Transforms/SLPVectorizer/int_sideeffect.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122493.418279.patch
Type: text/x-patch
Size: 518529 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220325/d78acd88/attachment-0001.bin>


More information about the llvm-commits mailing list