<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Aug 9, 2016, at 10:19 AM, Wallacy via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I believe the -O is already able to loop unroll</div></div></blockquote><div><br class=""></div><div>correct</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class="">, but now C-Style loop is gone, and maybe will be more "difficult" to compiler make this optimization, except of course using range literals.</div><br class=""><div class="gmail_quote"><div dir="ltr" class="">Em ter, 9 de ago de 2016 às 13:10, Muse M via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; escreveu:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">-Oloop<div class="">Correction: it should be similar to GCC -funroll-loops</div><div class="">On other option if we have 1,000,000's loops or array, it's bad for one core to handle 100% of the calculations and other cores are idle, the idea could be optimize loops to share/split workload across all available CPU cores.&nbsp;</div><div class=""><br class=""></div><div class="">-Ofunction</div><div class="">Is a dummy example for other example.</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Aug 9, 2016 at 11:21 PM, Félix Cloutier <span dir="ltr" class="">&lt;<a href="mailto:felixcca@yahoo.ca" target="_blank" class="">felixcca@yahoo.ca</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">My understanding is that -Ounchecked removes integer overflow checks and array bound checks.</div><div class=""><br class=""></div>What type of optimizations would -Oloop and -Ofunction do?<br class=""><div class="">
<br class=""><span style="font-family: 'Lucida Grande'; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;" class="">Félix</span>
</div>
<br class=""><div class=""><blockquote type="cite" class=""><div class=""><div class=""><div class="">Le 7 août 2016 à 19:27:56, Muse M via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; a écrit :</div><br class=""></div></div><div class=""><div class=""><div class=""><div dir="ltr" class=""><div class="">I'm not sure if this is the right channel to discuss on optimization switch</div><div class=""><br class=""></div><div class="">We are aware the 3 options:</div>-O<div class="">-Ofast</div><div class="">-Ounchecked</div></div></div></div></div></blockquote></div></div></blockquote></div></div></blockquote></div></div></blockquote><div><br class=""></div><div>We have -O and -Ounchecked.</div><div>-Ofast is obsolete.</div><div><br class=""></div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class=""><div class=""><div class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class="">As we can see, we rarely use -Ounchecked for safety reason and there aren't much info on what are the tradeoff. if there are performance reason that will need to improve loop or maths optimization or allow developers to fine-tuning in various area, we could add more options to compiler.</div><div class=""><br class=""></div><div class="">-OLoop (Optimize loop with safety)</div><div class="">-OFunc (Optimize function calls)<br class=""></div><div class="">and so on.</div><div class=""><br class=""></div></div></div></div></div></blockquote></div></div></blockquote></div></div></blockquote></div></div></blockquote><div><br class=""></div><div>I think you are asking for a way to fine tune optimizations for a specific purpose.</div><div><div>Fine-tuning optimizations is mostly intended for small parts of the code, like a function or even a loop.</div><div>But optimization switches apply to the whole module (assuming whole-module-optimization). So an optimization switch is not really a good tool for fine tuning.</div><div><br class=""></div><div>In general I believe there must be a good justification for adding an optimization switch/mode. E.g. it must be well understandable what it does and what's the difference to existing optimization modes.</div></div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class=""><div class=""><div class=""><div class=""><div dir="ltr" class=""><div class=""><br class=""></div><div class=""><br class=""></div></div></div></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></blockquote></div><br class=""></div>
_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</blockquote></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>