<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></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 Dec 21, 2014, at 12:58 AM, Herbie Robinson <<a href="mailto:HerbieRobinson@verizon.net" class="">HerbieRobinson@verizon.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="moz-cite-prefix" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">According to the Intel performance guidelines, pushes are significantly slower than moves to the extent they should be avoided as much as possible.  It's been a decade since I was dealing with this; so, I don't remember the numbers, but I'm pretty sure the changes you are proposing will slow the code down.<br class=""><br class="">People who care about speed more than code size are probably not going to like this very much…</div></div></blockquote></div><br class=""><div class="">Very true (and confirmed downthread), but this code size optimization is still very interesting for functions using the minsize function attribute, which is specifically designed to favor code size over performance:</div><div class=""><a href="http://llvm.org/docs/LangRef.html#function-attributes" class="">http://llvm.org/docs/LangRef.html#function-attributes</a></div><div class=""><br class=""></div><div class="">The linux kernel folks really care about the size of the bootloader, for example.</div><div class=""><br class=""></div><div class="">-Chris</div></body></html>