如何在 LLVM pass 中添加一行新代码?

How to add a new line of code in an LLVM pass?

我正在编写一个 LLVM pass,我需要在其中添加一行代码 :

list ObserverBoardInterface* ObserverList;.

我需要在程序的特定位置添加它。那么我将如何编写直接添加这行代码的传递(我应该采用什么方法)以及如何使用 LLVM 传递在特定点输入此代码(在该点发出此更改需要的信号)制作)?

要获得一组指令,您可以编写 C/C++ 代码并使用以下命令将其编译为 llvm 位码:

clang test.cpp -emit-llvm -S -o test.ll

然后用您喜欢的编辑器打开 test.ll 并阅读说明集。 曾经,你可以写自己的通行证,其中:

  1. 将使用上面获得的一组指令创建一个函数,并且
  2. 会找到调用该函数的点