即时编译器优化技术一览

即时编译器优化技术一览

 

 
1.编译器策略(compiler tactics)
延迟编译(delayed compilation)
分层编译(tiered compilation)
栈上替换(on-stack replacement)
延迟优化(delayed reoptimization)
静态单赋值表示(static single assignment representation)

2.基于性能监控的优化技术(profile-based techniques)
乐观空值断言(optimistic nullnuess assertions)
乐观类型断言(optimistic type assertions)
乐观类型增强(optimistic type strengthening)
乐观数组长度增强(optimistic array length strengthening)
裁剪未被选择的分支(untaken branch pruning)
乐观的多态内联(optimistic N-morphic inlining)
分支频率预测(branch frequency prediction)
调用频率预测(call frequency prediction)

3.基于证据的优化技术(proof-based techniques)
精确类型推断(exact type inference)
内存值推断(memory value inference)
内存值跟踪(memory value tracking)
常量折叠(constant folding)
重组(reassociation)
操作符退化(operator strength reduction)
空值检查消除(null check elimination)
类型检测退化(type test strength reduction)
类型检测消除(type test climination)
代数简化(algebraic simplification)
公共子表达式消除(common subexpression elimination)

4.数据流敏感重写(flow-sensitive rewrites)
条件常量传播(conditional constant propagation)
基于流承载的类型缩减转换(flow-carried type narrowing)
无用代码消除(dead code elimination)

5.语言相关的优化技术(language-specific techniques)
类型继承关系分析(class hicrarchy analysis)
去虚拟化(devirtualization)
符号常量传播(symbolic constant propagation)
自动装箱消除(autobox elimination)
逃逸分析(escape analysis)
锁消除(lock elision)
锁膨胀(lock coarsening)
消除反射(de-reflection)

6.内存及代码位置变换(memory and placement transformation)
表达式提升(expression hoisting)
表达式下沉(expression sinking)
冗余存储消除(redundant store elimination)
相邻存储合并(adjacent store fusion)
交汇点分离(merge-point splitting)

7.循环变换(loop transformations)
循环展开(loop unrolling)
循环剥离(loop peeling)
安全点消除(safepoint elimination)
迭代范围分离(iteration range splitting)
范围检查消除(range check elimination)
循环向量化(loop vectorization)

8.全局代码调整(global code shaping)
内联(inlining)
全局代码外提(global code motion)
基于热度的代码布局(heat-based code layout)
Switch调整(switch balancing)

9.控制流图变换(control flow graph transformation)
本地代码编排(local code scheduling)
本地代码封包(local code bundling)
延迟槽填充(delay slot filling)
着色图寄存器分配(graph-coloring register allocation)
线性扫描寄存器分配(linear scan register allocation)
复写聚合(copy coalescing)
常量分裂(constant splitting)
复写移除(copy removal)
地址模式匹配(address mode matching)
指令窥空优化(instruction peepholing)
基于确定有限状态机的代码生成(DFA-based code generator)
        
        

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dingsai88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值