[LLVMdev] how to use "new instruction()"

Daniel Berlin dberlin at dberlin.org
Thu Apr 16 23:40:22 PDT 2015


Value * is the instruction.

use dyn_cast<Instruction> to get to it.


On Thu, Apr 16, 2015 at 11:39 PM zhi chen <zchenhn at gmail.com> wrote:

> But IRBuilder.CreateXYZ only returns a "VALUE" type. Can I get the
> instruction created by it? For example,
>
> IRBuilder<> builder(&*pinst);
> Value *val = builder.CreateFAdd(LV, RV, "");
>
> How can I get the fadd instruction created by builder?
>
> On Thu, Apr 16, 2015 at 8:52 PM, zhi chen <zchenhn at gmail.com> wrote:
>
>> Yes. That's what I was the solution in my mind. But I just wanted to know
>> if there was a generic way to save some code...
>>
>> On Thu, Apr 16, 2015 at 8:32 PM, Tim Northover <t.p.northover at gmail.com>
>> wrote:
>>
>>> > I understand that I can detect the operation first, and use "create" to
>>> > create for each of them. But I don't if there is a generic way to do
>>> this
>>> > because if might be add/sub/mul... operations.
>>>
>>> I don't think there is. Realistically, just blindly replacing
>>> instructions with vector equivalents is only going to work in a few
>>> cases anyway. You're probably best to intentionally detect those cases
>>> and call the correct CreateXYZ function.
>>>
>>> Cheers.
>>>
>>> Tim.
>>>
>>
>>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150417/82d06a83/attachment.html>


More information about the llvm-dev mailing list