后端优化 指令合并

指令合并主要合并相邻的,use-def 链上 相邻的指令。

讲多条可以合并的指令合并成一条指令,去除多余指令。

1, 常量折叠和计算。

 a = 100;

b = 100;

c = a + b;

d = f * c;

====>

d = f * 200;

 

2,去除无效move指令

a = b;

c = a;

=====>

c = b;

 

3, 去除相同的无效的load, 需要一个指示内存状态的memop

res1 = Ioad op1 {mem}   op3 memop  memstat1;

res2 = load op1 var    op2 offset IMM    op3  memop memstat1

4, 去除无效的memstore

memstat1  I_store  Mem{ip}  res1 memstat0   // INSN1

// rm INSNI when memstat1 only used by INSN2

memstat2  I_store  Mem{ip}  res2 memstat1   // INSN2

 

posted @   zzas12345  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示