<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 08/31/2017 04:17 PM, Richard Smith
      via cfe-dev wrote:<br>
    </div>
    <blockquote
cite="mid:CAOfiQqk6j-yBSd9gA+wwyXg95i4vLfkhiXVri5D2MjGs4bun+g@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On 31 August 2017 at 14:14, Kaylor,
            Andrew via cfe-dev <span dir="ltr"><<a
                moz-do-not-send="true"
                href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div link="blue" vlink="purple" lang="EN-US">
                <div class="m_2724022782041152477WordSection1">
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I
                      believe that we will rely on fedisableexcept()
                      being marked as having unmodeled side-effects to
                      prevent a hoist like that.</span></p>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>fadd can be hoisted past *anything*, can't it?</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Yes, that's correct.<br>
    <br>
     -Hal<br>
    <br>
    <blockquote
cite="mid:CAOfiQqk6j-yBSd9gA+wwyXg95i4vLfkhiXVri5D2MjGs4bun+g@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><a moz-do-not-send="true"
                name="m_2724022782041152477__MailEndCompose"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></a></div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div link="blue" vlink="purple" lang="EN-US">
                <div class="m_2724022782041152477WordSection1">
                  <p class="MsoNormal"><b><span
                        style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif">
                      Richard Smith [mailto:<a moz-do-not-send="true"
                        href="mailto:richard@metafoo.co.uk"
                        target="_blank">richard@metafoo.co.uk</a>]
                      <br>
                      <b>Sent:</b> Thursday, August 31, 2017 2:09 PM<br>
                      <b>To:</b> Kaylor, Andrew <<a
                        moz-do-not-send="true"
                        href="mailto:andrew.kaylor@intel.com"
                        target="_blank">andrew.kaylor@intel.com</a>><br>
                      <b>Cc:</b> Marcus Johnson <<a
                        moz-do-not-send="true"
                        href="mailto:bumblebritches57@gmail.com"
                        target="_blank">bumblebritches57@gmail.com</a>>;
                      Clang Dev <<a moz-do-not-send="true"
                        href="mailto:cfe-dev@lists.llvm.org"
                        target="_blank">cfe-dev@lists.llvm.org</a>>;
                      <a moz-do-not-send="true"
                        href="mailto:wei.ding2@amd.com" target="_blank">wei.ding2@amd.com</a></span></p>
                  <div>
                    <div class="h5"><br>
                      <b>Subject:</b> Re: [cfe-dev] Why is #pragma STDC
                      FENV_ACCESS not supported?</div>
                  </div>
                  <div>
                    <div class="h5">
                      <p class="MsoNormal"> </p>
                      <div>
                        <div>
                          <div>
                            <p class="MsoNormal">On 31 August 2017 at
                              11:09, Kaylor, Andrew via cfe-dev <<a
                                moz-do-not-send="true"
                                href="mailto:cfe-dev@lists.llvm.org"
                                target="_blank">cfe-dev@lists.llvm.org</a>>
                              wrote:</p>
                            <blockquote
                              style="border:none;border-left:solid
                              #cccccc 1.0pt;padding:0in 0in 0in
                              6.0pt;margin-left:4.8pt;margin-right:0in">
                              <div>
                                <div>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">There
                                      are still a few things missing
                                      from the optimizer to get it
                                      completely robust, but I think
                                      there is enough in place for front
                                      end work to begin.  As I think
                                      I’ve demonstrated in my recent
                                      attempt to contribute a clang
                                      patch I’m not skilled enough with
                                      the front end to be the person to
                                      pull this off without an excessive
                                      amount of oversight, but as Erich
                                      indicated we do have some good
                                      front end people here who have
                                      this on their TODO list.  It’s
                                      just not at the top of the TODO
                                      list yet.</span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">If
                                      anyone is interested in the
                                      details of the LLVM side of
                                      things, there are constrained FP
                                      intrinisics (still marked as
                                      experimental at this point)
                                      documented in the language
                                      reference.  The initial patch can
                                      be seen here:</span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><a
                                        moz-do-not-send="true"
                                        href="https://reviews.llvm.org/D27028"
                                        target="_blank">https://reviews.llvm.org/<wbr>D27028</a></span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I’ve
                                      since added another group of
                                      intrinsics to handle the
                                      libm-equivalent intrinsics, and
                                      more recently Wei Ding contributed
                                      an fma intrinsic.</span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></p>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">The
                                      idea is that the front end will
                                      emit the constrained intrinsics in
                                      place of equivalent general FP
                                      operations or intrinsics in scopes
                                      where FENV_ACCESS is enabled. 
                                      This will prevent the optimizer
                                      from making optimizations that
                                      assume default fenv settings
                                      (which is what we want the
                                      optimizer to do in all other
                                      cases).  Eventually, we’ll want to
                                      go back and teach specific
                                      optimizations to understand the
                                      intrinsics so that where possible
                                      optimizations can be performed in
                                      a manner consistent with dynamic
                                      rounding modes and strict
                                      exception handling.</span></p>
                                </div>
                              </div>
                            </blockquote>
                            <div>
                              <p class="MsoNormal"> </p>
                            </div>
                            <div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">How do you
                                    deal with the hoisting-into-<span
                                      class="m_2724022782041152477gmail-il">fenv_access</span> <wbr>problem?
                                    Eg:</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt"> </span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">double
                                    f(double a, double b, double c) {</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">  {</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">#pragma
                                    STDC <span
                                      class="m_2724022782041152477gmail-il">FENV_ACCESS</span> ON</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">   
                                    feenableexcept(FE_OVERFLOW);</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">    double d
                                    = a * b;</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">   
                                    fedisableexcept(FE_OVERFLOW);</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">  }</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">  return c *
                                    d;</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">}</span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt"> </span></p>
                              </div>
                              <div>
                                <p class="MsoNormal"><span
                                    style="font-size:9.5pt">What stops
                                    llvm from hoisting the second fmul
                                    up to before the fedisableexcept?</span></p>
                              </div>
                            </div>
                            <div>
                              <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></p>
                            </div>
                            <blockquote
                              style="border:none;border-left:solid
                              #cccccc 1.0pt;padding:0in 0in 0in
                              6.0pt;margin-left:4.8pt;margin-right:0in">
                              <div>
                                <div>
                                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">-Andy</span></p>
                                  <p class="MsoNormal"><a
                                      moz-do-not-send="true"
                                      name="m_2724022782041152477_m_1667421056975128580__MailEndCompose"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span></a></p>
                                  <div>
                                    <div
                                      style="border:none;border-top:solid
                                      #e1e1e1 1.0pt;padding:3.0pt 0in
                                      0in 0in">
                                      <p class="MsoNormal"><b><span
                                            style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Hal
                                          Finkel [mailto:<a
                                            moz-do-not-send="true"
                                            href="mailto:hfinkel@anl.gov"
                                            target="_blank">hfinkel@anl.gov</a>]
                                          <br>
                                          <b>Sent:</b> Thursday, August
                                          31, 2017 10:45 AM<br>
                                          <b>To:</b> Richard Smith <<a
                                            moz-do-not-send="true"
                                            href="mailto:richard@metafoo.co.uk"
                                            target="_blank">richard@metafoo.co.uk</a>>;
                                          Marcus Johnson <<a
                                            moz-do-not-send="true"
                                            href="mailto:bumblebritches57@gmail.com"
                                            target="_blank">bumblebritches57@gmail.com</a>><br>
                                          <b>Cc:</b> Clang Dev <<a
                                            moz-do-not-send="true"
                                            href="mailto:cfe-dev@lists.llvm.org"
                                            target="_blank">cfe-dev@lists.llvm.org</a>>;
                                          Kaylor, Andrew <<a
                                            moz-do-not-send="true"
                                            href="mailto:andrew.kaylor@intel.com"
                                            target="_blank">andrew.kaylor@intel.com</a>><br>
                                          <b>Subject:</b> Re: [cfe-dev]
                                          Why is #pragma STDC
                                          FENV_ACCESS not supported?</span></p>
                                    </div>
                                  </div>
                                  <div>
                                    <div>
                                      <p class="MsoNormal"> </p>
                                      <p> </p>
                                      <div>
                                        <p class="MsoNormal">On
                                          08/31/2017 12:10 PM, Richard
                                          Smith via cfe-dev wrote:</p>
                                      </div>
                                      <blockquote
                                        style="margin-top:5.0pt;margin-bottom:5.0pt">
                                        <div>
                                          <p class="MsoNormal">Because
                                            no-one has implemented it.
                                            Patches would be welcome,
                                            but will need to start with
                                            a design and implementation
                                            of the requisite llvm
                                            extensions.</p>
                                        </div>
                                      </blockquote>
                                      <p class="MsoNormal"
                                        style="margin-bottom:12.0pt"><br>
                                        Yes. This is what Andrew Kaylor
                                        has been working on (cc'd).<br>
                                        <br>
                                         -Hal<br>
                                        <br>
                                      </p>
                                      <blockquote
                                        style="margin-top:5.0pt;margin-bottom:5.0pt">
                                        <div>
                                          <p class="MsoNormal"> </p>
                                          <div>
                                            <p class="MsoNormal">On 31
                                              Aug 2017 10:06, "Marcus
                                              Johnson via cfe-dev" <<a
                                                moz-do-not-send="true"
                                                href="mailto:cfe-dev@lists.llvm.org"
                                                target="_blank">cfe-dev@lists.llvm.org</a>>
                                              wrote:</p>
                                            <blockquote
                                              style="border:none;border-left:solid
                                              #cccccc 1.0pt;padding:0in
                                              0in 0in
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
                                              <div>
                                                <div>
                                                  <p class="MsoNormal"><span
style="font-size:18.0pt">^^^^^^</span></p>
                                                </div>
                                              </div>
                                              <p class="MsoNormal"
                                                style="margin-bottom:12.0pt"><br>
______________________________<wbr>_________________<br>
                                                cfe-dev mailing list<br>
                                                <a
                                                  moz-do-not-send="true"
href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
                                                <a
                                                  moz-do-not-send="true"
href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev"
                                                  target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a></p>
                                            </blockquote>
                                          </div>
                                        </div>
                                        <p class="MsoNormal"
                                          style="margin-bottom:12.0pt"><br>
                                          <br>
                                        </p>
                                        <pre>______________________________<wbr>_________________</pre>
<pre>cfe-dev mailing list</pre>
<pre><a moz-do-not-send="true" href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a></pre>
<pre><a moz-do-not-send="true" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a></pre>
</blockquote>
<p class="MsoNormal" style="margin-bottom:12.0pt"> </p>
<pre>-- </pre>
<pre>Hal Finkel</pre>
<pre>Lead, Compiler Technology and Programming Languages</pre>
<pre>Leadership Computing Facility</pre>
<pre>Argonne National Laboratory</pre>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">

______________________________<wbr>_________________

cfe-dev mailing list

<a moz-do-not-send="true" href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>

<a moz-do-not-send="true" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a></p>
</blockquote>
</div>
<p class="MsoNormal"> </p>
</div>
</div>
</div></div></div>
</div>


______________________________<wbr>_________________

cfe-dev mailing list

<a moz-do-not-send="true" href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>

<a moz-do-not-send="true" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a>


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


<fieldset class="mimeAttachmentHeader"></fieldset>
<pre wrap="">_______________________________________________
cfe-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a>
</pre>

</blockquote>
<pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre></body></html>