动态编译中的精确异常语义与Java字节码反编译
动态编译中的精确异常语义
在动态编译环境中,为了实现高效优化并确保精确异常处理,研究人员提出了一系列创新方法。
- 算法应用与优化
- 修改算法的效果 :将修改后的算法应用于示例时,通过对比不同阶段的图示,可以发现修复注释的存活范围有所减少。不过在该特定示例中,并没有修复注释被实际消除。
- 其他优化策略
- 代码下沉 :可以对之前的算法进行简单调整,使指令调度晚于原始调度,即代码下沉。此时会在原始指令槽中插入修复注释。由于修复注释的输入值也是重新调度指令的输入,所以无需特殊处理来保留其输入值。具体操作步骤如下:
foreach operation op
if schedule below ( op )
%% Deletes op and inserts as repair note.
convert2repairnote (op);
- **部分冗余消除**:通过结合在计算冗余路径上的死代码消除,以及在需要指令的路径上进行代码下沉,可以处理非推测(部分冗余消除)问题。
- **其他优化**:类似的方法还可应用于常量传播、常量折叠和公共子表达
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



