<div><div dir="auto">I think I tried to fix this once but the review stalled for lack of test case.</div><br><div class="gmail_quote"><div>On Sat, Jun 17, 2017 at 1:24 PM Sanjoy Das via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
On Fri, Jun 16, 2017 at 8:47 AM, Björn Pettersson A via llvm-commits<br>
<<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
> What I noticed was that AddReachableCodeToWorklist (in<br>
> InstructionCombining.cpp) does not always set MadeIRChange = true even if<br>
> optimisations are done.<br>
><br>
> This happens at least for the<br>
><br>
>       // DCE instruction if trivially dead.<br>
><br>
> and the<br>
><br>
>       // ConstantProp instruction if trivially constant.<br>
><br>
> optimisations.<br>
><br>
> If I add<br>
><br>
>   MadeIRChange = true;<br>
><br>
> when doing those optimisations, then the CGPassManager will set<br>
> CallGraphUpToDate = false, and later refresh the CallGraph if needed again.<br>
><br>
> So with such a modification to AddReachableCodeToWorklist we no longer get<br>
> the assert.<br>
><br>
> I can prepare a patch for this next week if it sounds reasonable (and no one<br>
> else is faster than me… my work week has actually ended already..).<br>
<br>
Yes, it sounds like you're on the right track -- changing the IR and<br>
pretending that the IR was not changed is definitely a bug in<br>
InstCombine.<br>
<br>
Thanks!<br>
-- Sanjoy<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature">~Craig</div>