[CFG] Replace lambdas in control_flow_graph.cpp with named helpers#699
Open
hughperkins wants to merge 19 commits into
Open
[CFG] Replace lambdas in control_flow_graph.cpp with named helpers#699hughperkins wants to merge 19 commits into
hughperkins wants to merge 19 commits into
GitHub Actions / PR change report
succeeded
Jun 29, 2026 in 0s
PR change report
Per-file totals + per-function breakdown of code-line additions and removals.
Details
PR change report (37dc765f0)
Per-file totals + per-function breakdown of code-line additions and removals.
Code lines exclude blank lines, comment-only lines, and Python multi-line strings.
| File | LoC | Added | Removed |
|---|---|---|---|
quadrants/ir/control_flow_graph.cpp |
1232 | +550 | -711 |
quadrants/ir/determine_ad_stack_size.cpp |
0 | +488 | |
quadrants/ir/control_flow_graph.h |
79 | +21 | -2 |
quadrants/ir/statements.h |
1331 | +5 | -1 |
quadrants/transforms/determine_ad_stack_size.cpp |
1081 | +4 | -4 |
Total: 5 file(s) changed, +1068 -718 code lines.
Per-function breakdown
quadrants/ir/control_flow_graph.cpp 1232 +550 -711
New:
try_eliminate_dead_store_at() 0 +48
CFGNode::try_eliminate_identical_store_at() 0 +35
CFGNode::try_forward_load_at() 0 +33
try_eliminate_identical_load_at() 0 +25
CFGNode::fold_definition_into_result() 0 +24
CFGNode::find_cross_block_def() 0 +21
seed_final_node_live_gen() 0 +20
may_contain_address() 0 +18
write_cfg_node_statements() 0 +18
write_cfg_node_header() 0 +16
dse_store_destinations() 0 +15
is_dse_eligible_pointer() 0 +14
seed_start_node_reach_gen() 0 +14
in_final_node_live_gen() 0 +13
is_external_input_pointer() 0 +13
CFGNode::any_aliased_store_breaks_forwarding() 0 +12
is_store_dead() 0 +12
is_reach_in_stmt_killed_at() 0 +11
build_matrix_ptr_alias_maps() 0 +10
mark_loads_live_in_this_node() 0 +10
format_neighbor_indices() 0 +9
format_live_var_names() 0 +8
CFGNode::find_intra_block_last_def() 0 +7
ControlFlowGraph::assert_structural_invariants() 0 +7
format_cfg_node_range_label() 0 +7
record_weakened_atomic_as_load() 0 +7
CFGNode::is_visible_at() 0 +6
Existing:
CFGNode::dead_store_elimination() 126 +23 -113
CFGNode::find_forwardable_store_value() 124 +13 -89
CFGNode::may_contain_variable() 20 +12 -4
CFGNode::contain_variable() 28 +11 -7
ControlFlowGraph::dump_graph_to_file() 65 +10 -45
ControlFlowGraph::reaching_definition_analysis() 71 +9 -38
ControlFlowGraph::live_variable_analysis() 68 +8 -33
CFGNode::store_to_load_forwarding() 68 +7 -58
CFGNode::is_reach_killed() 3 +1 -1
CFGNode::reaching_definition_analysis() 21 +1 -1
ControlFlowGraph::dead_store_elimination() 12 +1
ControlFlowGraph::gather_loaded_snodes() 17 +1
ControlFlowGraph::simplify_graph() 28 +1
ControlFlowGraph::store_to_load_forwarding() 11 +1
ControlFlowGraph::unreachable_code_elimination() 28 +1
Deleted:
ControlFlowGraph::determine_ad_stack_size() 322 -322
# note: per-function +/- differs from file totals by added_drift=+17 removed_drift=+0
quadrants/ir/determine_ad_stack_size.cpp 0 +488
New:
tarjan_scc() 0 +72
group_stacks_by_fingerprint() 0 +44
accumulate_per_stack_per_node_size_deltas() 0 +39
ControlFlowGraph::determine_ad_stack_size() 0 +38
identify_cyclic_sccs_and_topo() 0 +34
dp_mixed_sign_cyclic_scc() 0 +32
run_ad_stack_size_dp_for_representative() 0 +28
classify_scc_edges() 0 +24
update_global_max_and_relax_inter_scc() 0 +23
classify_cyclic_scc_fast_path() 0 +21
apply_ad_stack_dp_results() 0 +19
compute_outgoing_node_ids() 0 +17
spread_max_begin_over_zero_scc() 0 +17
<module>() 0 +16
collect_adaptive_ad_stacks() 0 +16
# note: per-function +/- differs from file totals by added_drift=+48 removed_drift=+0
quadrants/ir/control_flow_graph.h 79 +21 -2
Existing:
<module>() 7 +21 -2
quadrants/ir/statements.h 1331 +5 -1
New:
AdStackAllocaStmt::is_adaptive() 0 +3
Existing:
<module>() 2 +2 -1
quadrants/transforms/determine_ad_stack_size.cpp 1081 +4 -4
Existing:
determine_ad_stack_size() 111 +4 -4
Notes:
* The number columns (without a + or - sign) are code-line counts in the BASE (pre-PR) version: file size before this PR (0 for newly-added files), function body size before this PR (0 for new functions; original body size for deleted functions).
* +<n> / -<n> are code lines added / removed by this PR.
* Code lines exclude blank lines, comment-only lines, and Python multi-line strings.
Loading