[LLVMdev] copy value of a global's data field to another global

Alexander Poddey alexander.poddey at gmx.net
Sat May 16 22:28:16 PDT 2015


Hi all,

I can get access to the data stored in globals as follows:

GlobalVariable* pGvarAct=_set_a_valid_global_;
const_ptr_indicesVec=_the_indexes_

llvm::Constant* pConst;
pConst=ConstantExpr::getGetElementPtr(pGvarAct, const_ptr_indicesVec);

and e.g. use this to repalece an argumrnt of an instruction like:

I->setOperand(someArgumentIndex,pConst); 

However, getGetElementPtr returns a pointerType, which holds the actual type 
as sub_type.
This is a problem when I want to use the data from one global for the 
initializer of another

    pGvar->setInitializer(__NeedsAFloatTy_here__); //not pointerTy

So what I'm trying to do is copy some data-fields of one global to another. 
I know the 'index-trace' used in getGetElementPtr, but I need the actual 
type, not 'covered' by a pointerType. 


Thank You!
Alexander





More information about the llvm-dev mailing list