Landing: 91663770f795

Project / Subsystem

gcc / avoid-store-forwarding

Date

2026-07-28

Author

Konstantinos Eleftheriou

Commit

91663770f795fd02688c1da004337a1e7c94e810

Source

github

Perf win

No

Breaking

No

All attributes

project
gcc
subsystem
avoid-store-forwarding
patch_id
—
commit_hash
91663770f795fd02688c1da004337a1e7c94e810
source_type
github
headline
Unshare load destination when re-applying store-forwarding extension.
tldr
Fixes a resource sharing issue in the store-forwarding avoidance pass that could lead to compiler internal errors.
author
Konstantinos Eleftheriou
outcome
committed
performance_win
false
breaking_change
false
series_id
—
series_parts
[]
tags
  • • optimization
  • • rtl
  • • bugfix
  • • ice
discussion_id_link
—
bugzilla_pr
—
date
2026-07-28T00:00:00.000Z

The avoid-store-forwarding pass in GCC could incorrectly share a destination register (rtx) between two instructions when a load was preserved after a partial store-forwarding avoidance. This was particularly problematic when the destination was a SUBREG, leading to an verify_rtx_sharing ICE. The fix ensures the destination is unshared using copy_rtx when rebuilding the affected move instruction, resolving the ICE and passing new test cases.