[PATCH] D125571: [SLP]Do not vectorize non-profitable alternate nodes.

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 13 10:47:35 PDT 2022


ABataev created this revision.
ABataev added reviewers: RKSimon, vdmitrie, vporpo.
Herald added subscribers: dmgreen, hiraditya.
Herald added a project: All.
ABataev requested review of this revision.
Herald added a project: LLVM.

If alternate node has only 2 instructions and the tree is already big
enough, better to skip the vectorization of such nodes, they are not
very profitable (the resulting code cotains 3 instructions instead of
original 2 scalars). SLP can try to vectorize the buildvector sequence
in the next attempt, if it is profitable.

Metric: SLP.NumVectorInstructions

Program                                                                                       SLP.NumVectorInstructions

                                                                            results                   results0 diff
  test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/miniAMR/miniAMR.test    72.00                     73.00   1.4%

test-suite :: MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc.test  1186.00                   1198.00   1.0%

  test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/miniFE.test   241.00                    242.00   0.4%
               test-suite :: MultiSource/Applications/JM/lencod/lencod.test  2131.00                   2139.00   0.4%

test-suite :: External/SPEC/CINT2017rate/523.xalancbmk_r/523.xalancbmk_r.test  6377.00                   6384.00   0.1%
test-suite :: External/SPEC/CINT2017speed/623.xalancbmk_s/623.xalancbmk_s.test  6377.00                   6384.00   0.1%

    test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 12650.00                  12658.00   0.1%
  test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 26169.00                  26147.00  -0.1%
      test-suite :: MultiSource/Benchmarks/Trimaran/enc-3des/enc-3des.test    99.00                     86.00 -13.1%

Gains:
526.blender_r - more vectorized trees.
enc-3des - same.

Others:
510.parest_r - no changes.
miniFE - same
623.xalancbmk_s - some (non-profitable) parts of the trees are not

  vectorized.

523.xalancbmk_r - same
lencod - same
timberwolfmc - same
miniAMR - same


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D125571

Files:
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
  llvm/test/Transforms/SLPVectorizer/X86/slp-throttle.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D125571.429293.patch
Type: text/x-patch
Size: 10730 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220513/ca3eed33/attachment.bin>


More information about the llvm-commits mailing list