GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
ipa Performance Win

IPA introduces summary for callback edges.

Callback edges in IPA now use a summary struct, reducing per-edge data and speeding up lookups.

GCC’s Interprocedural Analysis (IPA) pass now uses a new callback_info summary struct for callback edges, replacing the previous callback_id. This change aggregates necessary information directly into the summary, eliminating the need to recalculate it each time and reducing per-edge storage. This optimizes the analysis by providing faster access to edge attributes.

In Details

The cgraph infrastructure in GCC's IPA subsystem has been refactored to introduce a callback_info struct for cgraph_edge objects representing callbacks. This replaces the callback_id field, which previously required fetching attributes from a separate table. The new summary struct aggregates critical information like function index and redirection status, improving lookup performance and reducing memory overhead. This change impacts functions within attr-callback.cc, cgraph.cc, and ipa-cp.cc.

For Context
Interprocedural Analysis (IPA)
A compiler analysis technique that examines the entire program at once, rather than function by function, to find optimization opportunities. IPA passes operate on a program representation that includes calls between functions.
callback edges
In the context of GCC's call graph, edges representing indirect calls or calls through function pointers, which are crucial for interprocedural analysis.
cgraph
GCC's internal representation of the call graph, which models the relationships between functions in a program. It's a fundamental data structure for interprocedural optimizations.
Filed Under: optimizationipa