<div dir="ltr"><div dir="ltr">On Tue, 2 Nov 2021 at 23:09, Kaylor, Andrew <<a href="mailto:andrew.kaylor@intel.com">andrew.kaylor@intel.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US" style="overflow-wrap: break-word;">
<div class="gmail-m_3094457072831834987WordSection1">
<p class="MsoNormal">I wasn’t aware of the problem that Phoebe brought up with regards to the fast-math flags being dropped. I also haven’t looked to see what is happening in GlobalISel. So, I may be underestimating the amount of work to make this transition.</p></div></div></blockquote><div><br></div><div>I'm not sure FastISel is still used, but if it is, we can't break it either (before fully deprecating it, at least).</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_3094457072831834987WordSection1"><p class="MsoNormal">
 Getting the existing LIT tests to pass doesn’t seem to be a problem. Avoiding all performance regressions in real-world code could be.</p></div></div></blockquote><div><br></div><div>LIT tests only cover upstream IR generation. There's an additional item there: warn downstream front-ends to check their IR with the flag set.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_3094457072831834987WordSection1"><p class="MsoNormal"> It may be possible to write a verifier-like utility pass that would try to detect when the flags were lost, but I haven’t
 thought that through.<br></p></div></div></blockquote><div><br></div><div>That'd possibly need caching instructions that do have it. Perhaps easier to add a library (not a pass) to compare before and after for any transformation pass that is about to replace-all-users-with.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_3094457072831834987WordSection1"><p class="MsoNormal"></p><p class="MsoNormal"><u></u></p>
<p class="MsoNormal"><u></u> As for the transition plan for out-of-tree front ends, I was thinking of something very similar to what Phoebe suggested in her most recent reply on this thread, but I was thinking of having the “fixup” pass run during the codegen prepare
 phase. The way I envision it would be this:</p></div></div></blockquote><div><br></div><div>SGTM.</div><div><br></div><div>cheers,</div><div>--renato</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="gmail-m_3094457072831834987WordSection1"><div><div><div>
</div>
</div>
</div>
</div>
</div>

</blockquote></div></div>