使某些局部变量可用于LLVM传递

时间:2016-08-03 02:47:18

标签: llvm llvm-c++-api

我有以下情况。

我需要在我的代码中插入某些CallInst。

我的功能原型是

void __llvmFooBar(int data, int loc);

参数loc由pass生成。我不需要任何外部数据来生成它。

但是,参数数据基本上是通过使用我的C代码中声明的一些变量来计算的。

//test.c
int main()
{
    int k = 0;
    happyEnding(k);
}

void happyEnding(int k)
{
    int __data = seed(time()) + k%2;
    //callInst to be inserted here, it should be
    //__llvmFooBar(__data, 23);
    myAlgorithim();
}
//pass.cpp
......
std::vector<Value *> args(2);
args[0] = ??? //need help here
args[1] = ConstantInt::get(IntegerTy, getLoc());
m_builder->CreateCall(hook, args);

从一般意义上讲,如何使用特定的命名约定(例如以__开头)使所有变量可用于llvm传递?

0 个答案:

没有答案