[LLVMdev] casting Constant * to value *?
John Criswell
jtcriswel at gmail.com
Wed Mar 18 01:55:58 PDT 2015
On 3/17/15 8:40 PM, Alexander Poddey wrote:
> Hi all,
>
> extracting datafields of globals, the API code ends up in a Constant *
>
>
> Constant* const_ptr_103 = ConstantExpr::getGetElementPtr(gvar_struct_foo,
> const_ptr_103_indices);
>
> it can be used to initialize e.g. a new instruction like:
>
> StoreInst* void_119 = new StoreInst(const_float_102, const_ptr_103, false,
> label_entry_113);
>
>
> But how about replacing the operand of an already existing instruction using
> a Constant *?
>
> Instruction->setOperand(1,__needs_a_value*_here__);
If you look at the inheritance tree, you'll see that an llvm::Constant
is a subclass of llvm::Value. Therefore, you can use an llvm::Constant
anywhere in which an llvm::Value is needed.
To look at the inheritance tree, look at the LLVM doxygen documentation.
Regards,
John Criswell
>
>
> Thx
> Alex
>
>
>
>
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
--
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell
More information about the llvm-dev
mailing list