<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 23, 2017 at 12:43 AM, via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-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">River,<br>
<br>
Thanks for the reply!<br>
<br>
> 23 июля 2017 г., в 1:05, River Riddle <<a href="mailto:riddleriver@gmail.com">riddleriver@gmail.com</a>> написал(а):<br>
<span class="">><br>
> - The explanation as to why the improvements can vary between the IR and MIR outliner mainly boil down to the level of abstraction that each are working at. The MIR level has very accurate heuristics and is effectively the last post ISel target independent code gen pass. The IR outliner on the other hand has more estimation in the cost model, and can affect the decisions of function simplification passes, instruction selection, RA, etc. Taking this into account can lead to different results.<br>
</span>To clarify, I'm surprised not with % differences (this is understandable), but with differences in what benchmarks got improved. It seems odd that MO, working on lower abstraction level, managed to find redundancies (say, in libquantum) that EO+LO missed.</blockquote><div><br></div><div>When I looked at this, most of the code size saving from the machine outliner is from outlining 2-3 instruction sequences (often the same sequence is outlined for each of many permutations of register assignments). Think of sequences like "TEST; SETCC" (and many different register assignments thereof).</div><div><br></div><div>-- Sean Silva </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> But indeed -- perhaps EO+LO cost model just considered these cases to be non-profitable. It would be interesting to know precisely.<br>
<br>
Yours,<br>
Andrey<br>
<br>
______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br></div></div>