TUESDAY, AUGUST 11, 2026
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.