[llvm-dev] Make certain local variables available to LLVM pass

Asit Dhal via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 2 01:24:31 PDT 2016


Hi,

I have the following situation.

I need to insert certain CallInst in my code.

The prototype of my function is

void __llvmFooBar(int data, int loc);

The parameter loc is generated by the pass. I don't need any external 
data to generate that.

But, the parameter data is basically calculated by using some variable 
declared inside my C-code.

//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);

In generic sense, how to make all variable with specific naming 
convention(like starts with __) make available to llvm pass ?

Can someone tell me how to proceed here ?

-- 

Warm Regards,
Asit Dhal
http://asit-dhal.github.io/



More information about the llvm-dev mailing list