<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:nicolasweber@gmx.de" title="Nico Weber <nicolasweber@gmx.de>"> <span class="fn">Nico Weber</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [ms] Template backref mangling is orders of magnitude slower than in Itanium ABI"
   href="https://bugs.llvm.org/show_bug.cgi?id=42091">bug 42091</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>RESOLVED
           </td>
           <td>REOPENED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>FIXED
           </td>
           <td>---
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [ms] Template backref mangling is orders of magnitude slower than in Itanium ABI"
   href="https://bugs.llvm.org/show_bug.cgi?id=42091#c5">Comment # 5</a>
              on <a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - [ms] Template backref mangling is orders of magnitude slower than in Itanium ABI"
   href="https://bugs.llvm.org/show_bug.cgi?id=42091">bug 42091</a>
              from <span class="vcard"><a class="email" href="mailto:nicolasweber@gmx.de" title="Nico Weber <nicolasweber@gmx.de>"> <span class="fn">Nico Weber</span></a>
</span></b>
        <pre>This is still not fixed if the recursion happens outside the 10 slots with
backrefs, the following still takes 20s:


template <class T1, class T2, class T3, class T4, class T5, class T6, class T7,
          class T8, class T9, class T10, class T11, class T12, class T13,
          class T14, class T15, class T16, class T17, class T18, class T19,
          class T20>
struct Food {};

using B0 = Food<int, int, int, int, int, int, int, int, int, int,  int, int,
int, int, int, int, int, int, int, int>;
using B1 = Food<B0, B0, B0, B0, B0, B0, B0, B0, B0, B0,  B0, B0, B0, B0, B0,
B0, B0, B0, B0, B0>;
using B2 = Food<B0, B0, B0, B0, B0, B0, B0, B0, B0, B0,  B1, B1, B1, B1, B1,
B1, B1, B1, B1, B1>;
using B3 = Food<B1, B1, B0, B0, B0, B0, B0, B0, B0, B0,  B2, B2, B2, B2, B2,
B2, B2, B2, B2, B2>;
using B4 = Food<B2, B2, B1, B0, B0, B0, B0, B0, B0, B0,  B3, B3, B3, B3, B3,
B3, B3, B3, B3, B3>;
using B5 = Food<B3, B3, B2, B1, B0, B0, B0, B0, B0, B0,  B4, B4, B4, B4, B4,
B4, B4, B4, B4, B4>;
using B6 = Food<B4, B4, B3, B2, B1, B0, B0, B0, B0, B0,  B5, B5, B5, B5, B5,
B5, B5, B5, B5, B5>;
using B7 = Food<B5, B4, B3, B2, B1, B0, B0, B0, B0, B0,  B6, B6, B6, B6, B6,
B6, B6, B6, B6, B6>;

// This too should take milliseconds, not minutes.
void f(B7 a) {}



If there isn't a backref, need to have a 2nd-level cache for the strings
themselves.</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>