[LLVM]在汇编语言上插入指令

痴心易碎 提交于 2020-01-26 05:27:07

问题:LLVM如何实现在汇编语言的.s 文件中所有call指令前后添加2行固定指令?

答:LLVMfunction相关的pass用于修改ir,而machine function相关的pas用于修改mir,也就相当于修改生成的汇编

编写machine function pass然后遍历每个指令,在call之前调用buildMI函数插入需要的指令,这个pass必须在code emit之前,指令调度之后,为了避免指令调度把插入的固定指令移动到其它位置

判断一个mir是否call函数,可以使用mi->desc().isCall判断

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!