g++ 中的调用图扩展阶段是什么?
What is the callgraph expansion stage in g++?
我正在分析我的程序;编译并寻找瓶颈。我最初认为模板实例化将是最昂贵的部分,但似乎是调用图函数扩展。问题是,我不知道那个阶段指的是什么。
callgraph functions expansion : 28.98 ( 80%) 0.95 ( 39%) 29.98 ( 73%) 782M ( 60%)
template instantiation : 2.36 ( 7%) 0.47 ( 19%) 2.84 ( 7%) 191M ( 15%)
我试图在网上搜索它,但没有找到答案。
它似乎是 GCC 实施的优化过程的一部分。我找到了一个参考文献 The GCC call graph module,它描述为编译器前端执行的最后一步:
- Expansion: We proceed in reverse DFS order on functions that are still present in the call-graph, applying inter-procedural optimizations such as inlining to the functions, and finally leaving them to the back-end to do the actual optimization and compilation.
我正在分析我的程序;编译并寻找瓶颈。我最初认为模板实例化将是最昂贵的部分,但似乎是调用图函数扩展。问题是,我不知道那个阶段指的是什么。
callgraph functions expansion : 28.98 ( 80%) 0.95 ( 39%) 29.98 ( 73%) 782M ( 60%)
template instantiation : 2.36 ( 7%) 0.47 ( 19%) 2.84 ( 7%) 191M ( 15%)
我试图在网上搜索它,但没有找到答案。
它似乎是 GCC 实施的优化过程的一部分。我找到了一个参考文献 The GCC call graph module,它描述为编译器前端执行的最后一步:
- Expansion: We proceed in reverse DFS order on functions that are still present in the call-graph, applying inter-procedural optimizations such as inlining to the functions, and finally leaving them to the back-end to do the actual optimization and compilation.