<div dir="ltr">I see. Is there a pre-existing way to do this in LLVM?<div><br></div><div>Cheers,</div><div>~Siddharth.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, 17 Aug 2017 at 02:12 Craig Topper <<a href="mailto:craig.topper@gmail.com">craig.topper@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.</div><div class="gmail_extra"><br clear="all"><div><div class="m_-4296670739728889239gmail_signature" data-smartmail="gmail_signature">~Craig</div></div>
<br><div class="gmail_quote"></div></div><div class="gmail_extra"><div class="gmail_quote">On Wed, Aug 16, 2017 at 5:01 PM, (IIIT) Siddharth Bhat via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Whoops, sorry, I meant "value->replaceAllUsesWith".</p>
<p dir="ltr">Should I create a new post with an updated title?</p>
<p dir="ltr">Thanks <br><span class="m_-4296670739728889239HOEnZb"><font color="#888888">
Siddharth </font></span></p><span class="m_-4296670739728889239im m_-4296670739728889239HOEnZb">
<br><div class="gmail_quote"><div dir="ltr">On Thu 17 Aug, 2017, 01:05 Tim Northover <<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 16 August 2017 at 15:39, (IIIT) Siddharth Bhat via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> From what I have observed, using `Inst->replaceAllUsesWith` does not replace<br>
> uses of the `Inst` in `ConstantExpr`s. Is there some way to have a universal<br>
> replaceAllUsesWith?<br>
<br>
Where are you seeing instructions used in ConstantExprs? That sounds<br>
really dodgy to me. Instructions are horribly non-Constant so I'd have<br>
thought it would be banned (even for technically plausible things like<br>
"and(i32 %inst, 0)").<br>
<br>
Cheers.<br>
<br>
Tim.<br>
</blockquote></div></span><div class="m_-4296670739728889239HOEnZb"><div class="m_-4296670739728889239h5"><div dir="ltr">-- <br></div><div class="m_-4296670739728889239m_2887562354550737643gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Sending this from my phone, please excuse any typos!</div></div>
</div></div><br></blockquote></div></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><div dir="ltr">-- <br></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Sending this from my phone, please excuse any typos!</div></div>