BDCEPass
2021-12-08 13:09:17 0 举报
LLVM编译框架中的BDCE优化Pass
作者其他创作
大纲/内容
Worklist.push_back(SE); Changed = true;continue
是
return Changed;
BDCE pass 实现了 位跟踪死代码消除。有些指令会杀死它们的一些输入位(移位、与、或)我们跟踪这些死位,移除只计算这些死位的位指令我我们还简化了生成未使用扩展位的sext(符号扩展),将其转换为zext(零扩展)
循环函数中指令
指令循环结束
否
指令是否有副作用
符号扩展为转换为零扩展位
开始/run方法
循环指令中操作
指令是死指令或指令不可达或指令没有demanded bits
salvageDebugInfo(I);Worklist.push_back(&I);I.dropAllReferences(); Changed = true;continue;
是否是整形
循环指令中操作结束,整个指令操作结束,执行下一条指令
处理Work_listI->eraseFromParent();
结束
0 条评论
下一页
为你推荐
查看更多
抱歉,暂无相关内容