[all-commits] [llvm/llvm-project] 9c61a5: [SLP] Schedule copyable operands modeled on non-sc...

Alexey Bataev via All-commits all-commits at lists.llvm.org
Tue Jun 2 12:23:02 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9c61a544c60b9e100d855aa95fa66b07d56a2bdf
      https://github.com/llvm/llvm-project/commit/9c61a544c60b9e100d855aa95fa66b07d56a2bdf
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-06-02 (Tue, 02 Jun 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/copyable-operand-non-scheduled-parent-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-bin-op-user.ll

  Log Message:
  -----------
  [SLP] Schedule copyable operands modeled on non-scheduled parent nodes

A node that does not need scheduling (all values used outside the block)
has no schedule bundle, yet it can still model one of its operands as a
copyable element, registering the ScheduleCopyableData on that parent
edge. If the instruction carrying that dependency is scheduled through a
different (duplicate) bundle, the copyable dependency on the non-scheduled
edge was never decremented.
When scheduling a bundle member, also process the instruction's tree
entries that have no registered bundle via pseudo-bundles, so their
copyable operand dependencies are decremented. Real operand dependencies
are guarded against double counting by the per-operand use counter.

Fixes #200831.

Reviewers: 

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



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