问题:LLVM如何实现在汇编语言的.s 文件中所有call指令前后添加2行固定指令?
答:LLVM中function相关的pass用于修改ir,而machine function相关的pas用于修改mir,也就相当于修改生成的汇编
编写machine function pass然后遍历每个指令,在call之前调用buildMI函数插入需要的指令,这个pass必须在code emit之前,指令调度之后,为了避免指令调度把插入的固定指令移动到其它位置
判断一个mir是否call函数,可以使用mi->desc().isCall判断
来源:CSDN
作者:adream307
链接:https://blog.csdn.net/adream307/article/details/103885963