[LLVMdev] Operand, instruction

help__me_please krishnadhan at cse.iitb.ac.in
Tue Apr 13 22:33:33 PDT 2010

Thanks for reply.
I have used AllocaInst, it's working but i think it's only for allocating
some memory for new variable. And CallInst creates a call instruction. I am
looking for creating a add or sub instruction. 

I used function instruction(), which gives me error "error: cannot allocate
an object of abstract type ‘llvm::Instruction’" and also "Instruction.h:28:
note:   because the following virtual functions are pure within
‘llvm::Instruction’:", "Instruction.h:50: note: 	virtual llvm::Instruction*
llvm::Instruction::clone(llvm::LLVMContext&) const"

Also i have used BinaryOperator::create(), but it gives error that there is
no function called create().

Thanks again for your reply.

John Criswell-2 wrote:
> help__me_please wrote:
>> Can you please give an example of creating an instruction (for example
>> add
>> instructions with two operand a and b)? I am trying instruction() for a
>> while, but no success yet.
> You need to look for the appropriate subclass of llvm::Instruction and 
> find the method for creating a new instruction.  The method is usually a 
> static method and takes arguments pointing to the values to use as 
> operands.  Doxygen is your best resource for finding these methods.
> For example, if you look at 
> http://llvm.org/doxygen/classllvm_1_1AllocaInst.html, you can see that 
> the AllocaInst class (which represents an alloca instruction) has a 
> standard constructor method that takes the type of object to allocate, 
> the name of the new alloca instruction, an instruction before which to 
> insert the alloca instruction, etc.
> As another example, the CallInst class 
> (http://llvm.org/doxygen/classllvm_1_1CallInst.html) represents a call 
> instruction and has a static Create() method that you can use to create 
> a new call instruction.
> -- John T.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

View this message in context: http://old.nabble.com/Operand%2C-instruction-tp21961718p28238512.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.

More information about the llvm-dev mailing list