<div dir="ltr">Forward my email to the new llvm-commits mailing list. <div><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Akira Hatanaka</b> <span dir="ltr"><<a href="mailto:ahatanak@gmail.com">ahatanak@gmail.com</a>></span><br>Date: Wed, Nov 4, 2015 at 12:19 PM<br>Subject: Re: [PATCH] Remove copies of MCSubtargetInfo from MCRelaxableFragment<br>To: "Duncan P. N. Exon Smith" <<a href="mailto:dexonsmith@apple.com">dexonsmith@apple.com</a>>, Rafael Ávila de Espíndola <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>>, Eric Christopher <<a href="mailto:echristo@gmail.com">echristo@gmail.com</a>><br>Cc: llvm-commits <<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a>><br><br><br><div dir="ltr">I've submitted a new patch for review that removes the copy of MCSubtargetInfo in MCRelaxableFragment and replaces it with a const reference:<div><br></div><div><a href="http://reviews.llvm.org/D14346" target="_blank">http://reviews.llvm.org/D14346</a></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Jul 8, 2015 at 5:30 PM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">Last I checked my `-g -flto` workload, `MCRelaxableFragment` was taking<br>
up 4.7% of the heap during LTO.  Since these aren't debug info related,<br>
the relative cost is even higher without `-g` (I figure 10% or so?).<br>
The struct layout contained a shock: over half of<br>
`sizeof(MCRelaxableFragment)` comes from a local copy (!?) of<br>
`MCSubtargetInfo`.<br>
<br>
It was more roundabout than I expected to fix, but this patch series<br>
does it.  0001 removes the copy of `MCSchedModel` from<br>
`MCSubtargetInfo`, 0002-0004 change the `MCSubtargetInfo` API to prove<br>
that only the feature bits get mutated, and 0005 moves the copies of<br>
`MCSubtargetInfo` to a cache in `MCContext`.<br>
<br>
I'd love a pre-commit sanity check from someone for two of these:<br>
  - 0001 (the object for `MCSchedModel::GetDefaultMCSubtarget()` doesn't<br>
    need to be defined in the header for some reason, does it?) and<br>
  - 0003 (I'm touching *all* the targets...)<br>
<br>
and I've provided the rest of the series (and a combined all.patch) for<br>
context.<br>
<br>
<br>
<br></div></div><span class="">_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></span></blockquote></div><br></div></div>
</div><br></div></div>