[all-commits] [llvm/llvm-project] a0086a: [SLP]Improve gathering of scalar elements.

cilkplus via All-commits all-commits at lists.llvm.org
Wed Jun 9 05:24:14 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a0086add2e52a82dd83114f458c10e2e4bdd15ac
      https://github.com/llvm/llvm-project/commit/a0086add2e52a82dd83114f458c10e2e4bdd15ac
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-06-09 (Wed, 09 Jun 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/trunc-insertion.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/pr34619.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/commutativity.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_exceed_scheduling.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_lencod.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_mandeltext.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_smallpt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/hoist.ll
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll
    M llvm/test/Transforms/SLPVectorizer/X86/jumbled-load-used-in-phi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
    M llvm/test/Transforms/SLPVectorizer/X86/partail.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi3.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi_landingpad.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr35497.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduction2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/remark_extract_broadcast.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
    M llvm/test/Transforms/SLPVectorizer/X86/value-bug-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/value-bug.ll
    M llvm/test/Transforms/SLPVectorizer/slp-max-phi-size.ll
    M llvm/test/Transforms/SLPVectorizer/slp-umax-rdx-matcher-crash.ll

  Log Message:
  -----------
  [SLP]Improve gathering of scalar elements.

1. Better sorting of scalars to be gathered. Trying to insert
   constants/arguments/instructions-out-of-loop at first and only then
   the instructions which are inside the loop. It improves hoisting of
   invariant insertelements instructions.
2. Better detection of shuffle candidates in gathering function.
3. The cost of insertelement for constants is 0.

Part of D57059.

Differential Revision: https://reviews.llvm.org/D103458




More information about the All-commits mailing list