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.