<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Inlining threshold calculation is non-deterministic"
   href="https://bugs.llvm.org/show_bug.cgi?id=45789">45789</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Inlining threshold calculation is non-deterministic
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>yikong@google.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>htmldeveloper@gmail.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=23438" name="attach_23438" title="Reproduce script">attachment 23438</a> <a href="attachment.cgi?id=23438&action=edit" title="Reproduce script">[details]</a></span>
Reproduce script

We identified that libpdfium build is non-deterministic. This only seems to
reproduce on Ubuntu 14.04 and 16.04, while always produces consistent result on
Ubuntu 18.04. The first point of divergence is in the Inliner pass, and the
difference is that the calculated inlining threshold for `_ZN1kD2Ev` being
different.

== 6ffcaa ==
/tmp/test/cpdf_image.cpp:31:24: remark: _ZN1kD2Ev not inlined into
_ZN10CPDF_Image1qEv because too costly to inline (cost=45, threshold=45)
[-Rpass-missed=inline]
== e995bd ==
/tmp/test/cpdf_image.cpp:31:24: remark: _ZN1kD2Ev inlined into
_ZN10CPDF_Image1qEv with (cost=45, threshold=325) [-Rpass=inline]

Reproduce script based on Docker is attached.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>