[all-commits] [llvm/llvm-project] ffe202: Revert "[LV] Limits the splat operations be hoiste...

Mel Chen via All-commits all-commits at lists.llvm.org
Thu Mar 13 07:17:15 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ffe202ca0053cbdc27a90cc4fd652c6bab6bca38
      https://github.com/llvm/llvm-project/commit/ffe202ca0053cbdc27a90cc4fd652c6bab6bca38
  Author: Mel Chen <mel.chen at sifive.com>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
    M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
    M llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-extractvalue.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-cost.ll

  Log Message:
  -----------
  Revert "[LV] Limits the splat operations be hoisted must not be defined by a recipe. (#117138)"

This reverts commit 1ff10fa82fff83bb2f0a5c1ffde6203b52bc9619.


  Commit: 5d5e706691c6d811820598a73694d3430c1d11b0
      https://github.com/llvm/llvm-project/commit/5d5e706691c6d811820598a73694d3430c1d11b0
  Author: Mel Chen <mel.chen at sifive.com>
  Date:   2025-03-13 (Thu, 13 Mar 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlanDominatorTree.h
    M llvm/lib/Transforms/Vectorize/VPlanHelpers.h
    M llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-extractvalue.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-cost.ll

  Log Message:
  -----------
  [VPlan] Restrict hoisting of broadcast operations using VPDominatorTree (#117138)

This patch restricts broadcast operations from being hoisted to the vector
preheader unless the basic block that defines the broadcasted value properly
dominates the vector preheader.

This prevents potential use-before-definition issues when the broadcasted
value is defined within the plan. VPDominatorTree is used to confirm this
restriction while still allowing safe hoisting for broadcasted values defined
outside the plan.

Issue https://github.com/llvm/llvm-project/issues/117139


Compare: https://github.com/llvm/llvm-project/compare/d4baf611c1cc...5d5e706691c6

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