Landing: f678eab4f721

Project / Subsystem

gcc / tree-optimization

Date

2026-08-19

Author

Richard Biener

Commit

f678eab4f721ee3da1730e6c637b90a40aeb9d4d

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
tree-optimization
patch_id
—
commit_hash
f678eab4f721ee3da1730e6c637b90a40aeb9d4d
source_type
github
headline
Fix vectorization scheduling to exclude use statement from dominance check
tldr
Vectorization scheduling now correctly excludes the use statement from dominance checks to prevent incorrect scheduling.
author
Richard Biener
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • tree-optimization
  • • vectorization
  • • bugfix
discussion_id_link
—
bugzilla_pr
—
date
2026-08-19T00:00:00.000Z

This patch corrects an issue in GCC’s vectorization scheduler where the use_stmt was incorrectly included in dominance checks for live lanes and reduction roots. The problem arises because vector definitions are inserted after the placement point, meaning the use_stmt should not be considered dominated by it. The fix modifies vect_bb_slp_mark_live_stmts and vect_schedule_slp to exclude the use_stmt from dominance checks, resolving a verification error. A new test case bb-slp-pr126936.c has been added to verify the fix.