[all-commits] [llvm/llvm-project] 6e3631: [mlir][scf] Track replacements using a listener in...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Tue Dec 24 12:41:38 PST 2024


  Branch: refs/heads/users/alexey-bataev/spr/riscvcodegenttiuse-processshufflemasks-for-cost-estimationsactual-per-register-shuffles
  Home:   https://github.com/llvm/llvm-project
  Commit: 6e3631d0e3316394ff4eae2913013d323e685790
      https://github.com/llvm/llvm-project/commit/6e3631d0e3316394ff4eae2913013d323e685790
  Author: Kunwar Grover <groverkss at gmail.com>
  Date:   2024-12-24 (Tue, 24 Dec 2024)

  Changed paths:
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp

  Log Message:
  -----------
  [mlir][scf] Track replacements using a listener in TileAndFuse (#120999)

This PR makes TileAndFuse explicitly track replacements using a listener
instead of assuming that the results always come from the outer most
tiling loop. scf::tileUsingInterface can introduce merge operations
whose results are the actual replacements to use, instead of the outer
most loop results.


  Commit: 2d038caeebc8c5e49915c0db7c7eb21116c71de2
      https://github.com/llvm/llvm-project/commit/2d038caeebc8c5e49915c0db7c7eb21116c71de2
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-12-24 (Tue, 24 Dec 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt-vplan.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
    M llvm/test/Transforms/LoopVectorize/X86/reduction-small-size.ll
    M llvm/test/Transforms/LoopVectorize/X86/uint64_to_fp64-cost-model.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains-vplan.ll

  Log Message:
  -----------
  [VPlan] Remove stray space when printing VPWidenCastRecipe.

printFlags() already takes care of printing a single space if there are
no flags. Remove the extra space when printing a recipe without flags.


  Commit: 07d284d4ebffd58d4b2934769b4e11fedd0b106e
      https://github.com/llvm/llvm-project/commit/07d284d4ebffd58d4b2934769b4e11fedd0b106e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-12-24 (Tue, 24 Dec 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Analysis/CostModel/AMDGPU/shufflevector.ll
    M llvm/test/Analysis/CostModel/RISCV/shuffle-exact-vlen.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-single-src-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/alternate-cmp-swapped-pred-parent.ll
    M llvm/test/Transforms/SLPVectorizer/extract-many-users-buildvector.ll
    M llvm/test/Transforms/SLPVectorizer/full-overlap-non-schedulable.ll
    M llvm/test/Transforms/SLPVectorizer/gathered-consecutive-loads-different-types.ll
    M llvm/test/Transforms/SLPVectorizer/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll

  Log Message:
  -----------
  [SLP]Add cost estimation for gather node reshuffling

Adds cost estimation for the variants of the permutations of the scalar
values, used in gather nodes. Currently, SLP just unconditionally emits
shuffles for the reused buildvectors, but in some cases better to leave
them as buildvectors rather than shuffles, if the cost of such
buildvectors is better.

X86, AVX512, -O3+LTO
Metric: size..text

Program                                                                        size..text
                                                                               results     results0    diff
                 test-suite :: External/SPEC/CINT2006/445.gobmk/445.gobmk.test   912998.00   913238.00  0.0%
 test-suite :: MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame.test   203070.00   203102.00  0.0%
     test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test  1396320.00  1396448.00  0.0%
      test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test  1396320.00  1396448.00  0.0%
                       test-suite :: MultiSource/Benchmarks/Bullet/bullet.test   309790.00   309678.00 -0.0%
      test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12477607.00 12470807.00 -0.1%

CINT2006/445.gobmk - extra code vectorized
MiBench/consumer-lame - small variations
CFP2017speed/638.imagick_s
CFP2017rate/538.imagick_r - extra vectorized code
Benchmarks/Bullet - extra code vectorized
CFP2017rate/526.blender_r - extra vector code

RISC-V, sifive-p670, -O3+LTO
CFP2006/433.milc - regressions, should be fixed by https://github.com/llvm/llvm-project/pull/115173
CFP2006/453.povray - extra vectorized code
CFP2017rate/508.namd_r - better vector code
CFP2017rate/510.parest_r - extra vectorized code
SPEC/CFP2017rate - extra/better vector code
CFP2017rate/526.blender_r - extra vectorized code
CFP2017rate/538.imagick_r - extra vectorized code
CINT2006/403.gcc - extra vectorized code
CINT2006/445.gobmk - extra vectorized code
CINT2006/464.h264ref - extra vectorized code
CINT2006/483.xalancbmk - small variations
CINT2017rate/525.x264_r - better vectorization

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/115201


  Commit: 10d803d2f751702467757c26ed1214aa7a24adad
      https://github.com/llvm/llvm-project/commit/10d803d2f751702467757c26ed1214aa7a24adad
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-12-24 (Tue, 24 Dec 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Analysis/CostModel/AMDGPU/shufflevector.ll
    M llvm/test/Analysis/CostModel/RISCV/shuffle-exact-vlen.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-single-src-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat-codesize.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat-latency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat-sizelatency.ll
    M llvm/test/Analysis/CostModel/X86/shuffle-splat.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt-vplan.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-icmpcost.ll
    M llvm/test/Transforms/LoopVectorize/X86/reduction-small-size.ll
    M llvm/test/Transforms/LoopVectorize/X86/uint64_to_fp64-cost-model.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains-vplan.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalarization-overhead.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/scatter-vectorize-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/alternate-cmp-swapped-pred-parent.ll
    M llvm/test/Transforms/SLPVectorizer/extract-many-users-buildvector.ll
    M llvm/test/Transforms/SLPVectorizer/full-overlap-non-schedulable.ll
    M llvm/test/Transforms/SLPVectorizer/gathered-consecutive-loads-different-types.ll
    M llvm/test/Transforms/SLPVectorizer/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/resized-alt-shuffle-after-minbw.ll
    M mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp

  Log Message:
  -----------
  Rebase

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/635c51d8b97a...10d803d2f751

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list