(IIIT) Siddharth Bhat via llvm-dev
2017-Aug-17 00:01 UTC
[llvm-dev] Inst->replaceAllUsesWith and uses in ConstantExpr
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! -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170817/f508e8b2/attachment.html>
Craig Topper via llvm-dev
2017-Aug-17 00:12 UTC
[llvm-dev] Inst->replaceAllUsesWith and uses in ConstantExpr
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 > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170816/11b17b73/attachment-0001.html>
(IIIT) Siddharth Bhat via llvm-dev
2017-Aug-17 06:53 UTC
[llvm-dev] Inst->replaceAllUsesWith and uses in ConstantExpr
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>