部分中,基于一些分析,我必须更改函数调用的参数。我在llvm-ir级别上执行此操作。像这样的东西
doWork(“ work”,functionBefore)
基于我的结果,我的llvm-pass应该能够像这样传递传递给函数调用的函数指针
doWork(“ work”,functionAfter)
假设functionBefore和functionAfter具有相同的返回类型。
1。是否可以使用llvm pass更改参数?
2。还是我应该删除指令并重新创建所需的指令?
请提供一些建议或指导,以实现此目的?
调用该函数的llvm可能是这样的-
调用void @ _Z7processNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPFvS4_E(%“ class.std :: __ cxx11 :: basic_string” * nonnull%1,void(%“ class.std :: __ cxx11cc_11_cic_c_11_cn_char_Est_char_Est_char_Best_char) ) 标记%7展开标签%13