- 基于汇总信息
- 建立调用图
- 在调用图中后序访问PU(?为何后序访问)
- 在每个函数中分析调用关系以便减少调用开销
- 左右内联决策的因素:语言局限或信息不足;启发式利用调用的频率以及调用和被调用者的大小
- 编译选项使得用户可以影响内联的决策
- 在后序遍历调用图的过程中进行
- 在每个将被内联的调用中:使用被调用部分代码的拷贝来代替调用指令;将被调用者的本地符号表和调用者符号表合并;将参数传递代码改为赋值代码;插入赋值语句以获得返回值;遍历拷贝来的被调用者更新代码
- 递归内联在函数中所有调用被处理之后进行,当前递归深度被限制为1
此文是Fred Chow在德拉华大学所讲open64课程讲义的翻译,转载请注明出处 http://lingcc.com
若需要此讲义的原版,请email我
整个Open64课程系列的文章包括以下,请阅读中指正

Pingback: Open64课程—代码生成(CG) « 编译点滴
Pingback: Open64 课程–全局标量优化(WOPT I) part II « 编译点滴
Pingback: Open64课程-结语 « 编译点滴
Pingback: 编译点滴
Pingback: 编译点滴
Pingback: 编译点滴 » Open64课程-简介,概述和中间表示
Pingback: 编译点滴 » Open64课程–反馈指导优化(FDO)
Pingback: 《编译点滴》半年记 « 编译点滴