[llvm-dev] Inst->replaceAllUsesWith and uses in ConstantExpr

(IIIT) Siddharth Bhat via llvm-dev llvm-dev at lists.llvm.org
Wed Aug 16 23:53:46 PDT 2017


I see. Is there a pre-existing way to do this in LLVM?

Cheers,
~Siddharth.

On Thu, 17 Aug 2017 at 02:12 Craig Topper <craig.topper at gmail.com> wrote:

> ConstantExprs are immutable, they can't be changed once they are created.
> And a ConstantExpr can reference other ConstantExprs. So replacing all uses
> of a Value in a ConstantExpr would require creating a new immutable object
> for each ConstantExpr that references the one you're changing. And that
> would continue rippling outward.
>
> ~Craig
>
> On Wed, Aug 16, 2017 at 5:01 PM, (IIIT) Siddharth Bhat via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Whoops, sorry, I meant "value->replaceAllUsesWith".
>>
>> Should I create a new post with an updated title?
>>
>> Thanks
>> Siddharth
>>
>> On Thu 17 Aug, 2017, 01:05 Tim Northover <t.p.northover at gmail.com> wrote:
>>
>>> On 16 August 2017 at 15:39, (IIIT) Siddharth Bhat via llvm-dev
>>> <llvm-dev at lists.llvm.org> wrote:
>>> > From what I have observed, using `Inst->replaceAllUsesWith` does not
>>> replace
>>> > uses of the `Inst` in `ConstantExpr`s. Is there some way to have a
>>> universal
>>> > replaceAllUsesWith?
>>>
>>> Where are you seeing instructions used in ConstantExprs? That sounds
>>> really dodgy to me. Instructions are horribly non-Constant so I'd have
>>> thought it would be banned (even for technically plausible things like
>>> "and(i32 %inst, 0)").
>>>
>>> Cheers.
>>>
>>> Tim.
>>>
>> --
>> Sending this from my phone, please excuse any typos!
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
> --
Sending this from my phone, please excuse any typos!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170817/58162388/attachment.html>


More information about the llvm-dev mailing list