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

Nemanja Ivanovic via llvm-dev llvm-dev at lists.llvm.org
Thu Aug 17 01:22:27 PDT 2017


Siddarth,
Perhaps to provide a short explanation why you want to RAUW ConstantExpr's.
Then others are likely to be able to provide you with more useful feedback
for how you can accomplish your goal.

On Thu, Aug 17, 2017 at 8:53 AM, (IIIT) Siddharth Bhat via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> 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!
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170817/8364e8d4/attachment.html>


More information about the llvm-dev mailing list