bhavani krishnan
2008-Nov-15 23:58 UTC
[LLVMdev] How do I get the result of an instruction?
Thanks! How do I cast the result to a string? I basically need to store the results of some instructions in a file. Thanks, Bhavani --- On Sun, 11/16/08, John Criswell <criswell at uiuc.edu> wrote:> From: John Criswell <criswell at uiuc.edu> > Subject: Re: [LLVMdev] How do I get the result of an instruction? > To: "bhavi63 at yahoo.com" <bhavi63 at yahoo.com>, "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> > Date: Sunday, November 16, 2008, 10:55 AM > bhavani krishnan wrote: > > Hi all, > > > > I probably have a stupid question but I could not find > out so please help me out here. I can use getOperand to get > the operands of an instruction. Similarly, How do I get the > result of an instruction? > The instruction itself is its result. > > For example, if I wanted to generate code that does a > getlemeneptr instruction (GEP) and then uses the result of > the GEP as the pointer to a load instruction, I would do the > following: > > Instruction * GEP = new GetElementPtrInst (Value, ....); > Instruction * LI = new LoadInst (GEP, "name", > ...); > > -- John T. > > > Thanks, > > Bhavani > > > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >
On Sat, Nov 15, 2008 at 3:58 PM, bhavani krishnan <bhavi63 at yahoo.com> wrote:> Thanks! > > How do I cast the result to a string? I basically need to store the results of some instructions in a file.If you're confused about how the IR works, http://llvm.org/demo/ can be useful. The question you're asking doesn't really seem to make sense. -Eli
bhavani krishnan
2008-Nov-16 15:54 UTC
[LLVMdev] How do I get the result of an instruction?
Hi, I am writing an optimization pass where I need to instrument the code such that I need to store the results of some instructions in file. Using llc -march=cpp option I figured out how to add a function(say writeToFile) which takes char* parameter and writes to file. Now, I need put in a CallInst which calls writeToFile passing the Instruction result as parameter. How do I do this? So, in my optimization pass... Func *myprint = makewriteToFile() //creates a function which writes to file for (Function::iterator i = func->begin(), e = func->end(); i != e; ++i) { blk=i; for (BasicBlock::iterator j = blk->begin(), k = blk->end(); j != k; ++j){ Instruction *inst = j; //if inst satisfies my condition, write reults to file CallInst *CallPrint = CallInst::Create(myprint, ???, "", j); CallPrint->setTailCall(true); } } What do I put in the ???. How do I cast Instruction *inst into char * which can be passed into the function? Hope this is clear. Thanks, Bhavani --- On Sun, 11/16/08, Eli Friedman <eli.friedman at gmail.com> wrote:> From: Eli Friedman <eli.friedman at gmail.com> > Subject: Re: [LLVMdev] How do I get the result of an instruction? > To: bhavi63 at yahoo.com, "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu> > Cc: "John Criswell" <criswell at uiuc.edu> > Date: Sunday, November 16, 2008, 6:35 AM > On Sat, Nov 15, 2008 at 3:58 PM, bhavani krishnan > <bhavi63 at yahoo.com> wrote: > > Thanks! > > > > How do I cast the result to a string? I basically need > to store the results of some instructions in a file. > > If you're confused about how the IR works, > http://llvm.org/demo/ can > be useful. The question you're asking doesn't > really seem to make > sense. > > -Eli
Maybe Matching Threads
- [LLVMdev] Assertion `castIsValid(getOpcode(), S, Ty) && "Illegal BitCast"' failed.
- [LLVMdev] Assertion `InReg && "Value not in map!"' failed
- [LLVMdev] Assertion `InReg && "Value not in map!"' failed
- [LLVMdev] How do I get the result of an instruction?
- [LLVMdev] How do I get the result of an instruction?