GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
gcc

Use ssa-names rather than versions in the relation oracle.

Internal compiler API updated to consistently use ssa-names instead of version numbers for relation lookups.

The relation oracle, a component within GCC’s value analysis, now consistently uses ssa-name trees instead of version numbers for its internal API calls. This change improves consistency and simplifies the internal workings of the value-relation component.

In Details

The dom_oracle in value-relation.cc previously accepted SSA version numbers in several internal API calls. This commit modifies these calls (e.g., create_relation_in_bb, search_and_merge_relation) to accept ssa_name trees instead. This aligns the interface with the underlying data representation, making the code more robust and easier to maintain.

For Context
SSA
Static Single Assignment form. An intermediate representation where every variable is assigned exactly once.
ssa-name
A GCC internal representation for a variable in SSA form, often associated with a specific version or assignment.
Relation Oracle
A component within GCC that tracks relationships between values or expressions, often used in optimization passes.
Dominator Search
An algorithm used in compiler optimization to find the dominator tree of a control flow graph, identifying basic blocks that must be executed before others.
Filed Under: compilerrefactoroptimization