computeImmediateDominators() — react Function Reference
Architecture documentation for the computeImmediateDominators() function in Dominator.ts from the react codebase.
Entity Profile
Dependency Diagram
graph TD 9817c1db_b7a8_e8dc_1ed4_f224e36002e9["computeImmediateDominators()"] b02a9daf_aca4_b66a_9b9b_0b739a8ca4aa["Dominator.ts"] 9817c1db_b7a8_e8dc_1ed4_f224e36002e9 -->|defined in| b02a9daf_aca4_b66a_9b9b_0b739a8ca4aa e28bcdab_2c48_d52f_7a36_ef26ead72639["computeDominatorTree()"] e28bcdab_2c48_d52f_7a36_ef26ead72639 -->|calls| 9817c1db_b7a8_e8dc_1ed4_f224e36002e9 7703f432_520f_80d2_69d8_201d9cb9eb55["computePostDominatorTree()"] 7703f432_520f_80d2_69d8_201d9cb9eb55 -->|calls| 9817c1db_b7a8_e8dc_1ed4_f224e36002e9 041ca752_10c1_3cda_1f5c_02f44a01310e["invariant()"] 9817c1db_b7a8_e8dc_1ed4_f224e36002e9 -->|calls| 041ca752_10c1_3cda_1f5c_02f44a01310e eb04bd2c_f40e_dbee_f195_08280608a550["intersect()"] 9817c1db_b7a8_e8dc_1ed4_f224e36002e9 -->|calls| eb04bd2c_f40e_dbee_f195_08280608a550 style 9817c1db_b7a8_e8dc_1ed4_f224e36002e9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
compiler/packages/babel-plugin-react-compiler/src/HIR/Dominator.ts lines 151–194
function computeImmediateDominators<T>(graph: Graph<T>): Map<T, T> {
const nodes: Map<T, T> = new Map();
nodes.set(graph.entry, graph.entry);
let changed = true;
while (changed) {
changed = false;
for (const [id, node] of graph.nodes) {
// Skip start node
if (node.id === graph.entry) {
continue;
}
// first processed predecessor
let newIdom: T | null = null;
for (const pred of node.preds) {
if (nodes.has(pred)) {
newIdom = pred;
break;
}
}
CompilerError.invariant(newIdom !== null, {
reason: `At least one predecessor must have been visited for block ${id}`,
loc: GeneratedSource,
});
for (const pred of node.preds) {
// For all other predecessors
if (pred === newIdom) {
continue;
}
const predDom = nodes.get(pred);
if (predDom !== undefined) {
newIdom = intersect(pred, newIdom, graph, nodes);
}
}
if (nodes.get(id) !== newIdom) {
nodes.set(id, newIdom);
changed = true;
}
}
}
return nodes;
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does computeImmediateDominators() do?
computeImmediateDominators() is a function in the react codebase, defined in compiler/packages/babel-plugin-react-compiler/src/HIR/Dominator.ts.
Where is computeImmediateDominators() defined?
computeImmediateDominators() is defined in compiler/packages/babel-plugin-react-compiler/src/HIR/Dominator.ts at line 151.
What does computeImmediateDominators() call?
computeImmediateDominators() calls 2 function(s): intersect, invariant.
What calls computeImmediateDominators()?
computeImmediateDominators() is called by 2 function(s): computeDominatorTree, computePostDominatorTree.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free