Landing: eeaf2211377a
Project / Subsystem
gcc / gcc
Date
2026-06-03
Author
Andrew MacLeod
Commit
eeaf2211377a55b1126b04ebf27b46535e79c771
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- gcc
- patch_id
- —
- commit_hash
- eeaf2211377a55b1126b04ebf27b46535e79c771
- source_type
- github
- headline
- DOM avoids processing unreachable code with multiple SSA names.
- tldr
- The Dominator Optimiser now aborts processing unreachable code when a branch condition involves two SSA names, preventing incorrect global value assignments.
- author
- Andrew MacLeod
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • optimization
- • ssa
- • dominator-tree
- • bugfix
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-06-03T00:00:00.000Z
This commit modifies the Dominator Optimiser (DOM) to prevent it from attempting to assign global values to SSA names within unreachable code blocks, specifically when the branch condition leading to a __builtin_unreachable() has two SSA names. This change aligns DOM’s behavior with that of Value Range Propagation (VRP), avoiding potential issues where relations elsewhere in the code might invalidate global value assignments made in such unreachable paths. The fix is crucial for maintaining the correctness of optimizations, particularly when dealing with complex SSA relations.