<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jun 5, 2012, at 2:31 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Tue, Jun 5, 2012 at 2:15 PM, Stephen Canon <span dir="ltr"><<a href="mailto:scanon@apple.com" target="_blank">scanon@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">
</blockquote></div></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: relative; z-index: 0; "><div class="im">The trouble I see with this is that you're going to end up generating an enormous number of start/stop intrinsics for some code (one pair for every source expression containing FP, effectively).  I'm not sure how much of a concern that really is, but it feels inelegant to me.</div></blockquote><div><br></div><div>My idea was essentially that you would only do this where contraction was precluded, which you indicated should be rare (1%). That should restrict the amount of start/stop churn?</div><div>
<br></div><div>Are you imagining something completely different?</div></div>
</blockquote></div><br><div>Contraction is precluded across expression boundaries in the standard C numerics model.  Assuming we want to support standard C numerics, you would need to insert start/stop for every expression containing FP.</div><div><br></div><div>You would actually get to avoid this precisely in the 1% case; if FMA formation is forbidden outright, you only need a single stop.</div><div><br></div><div>The "fast math" mode (greedy FMA formation) would only require a single start (or nothing at all), but that mode doesn't conform to C (or C++, as far as I know), and shouldn't be the default mode.</div><div><br></div><div>- Steve</div></body></html>