<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/1999/html" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Ross Burton</title><link>http://www.burtonini.com/blog</link><description>A potted account of Ross' life</description><language>en</language><ttl>60</ttl><dc:creator>Ross Burton</dc:creator><admin:generatorAgent rdf:resource="http://pyblosxom.sourceforge.net/"/><admin:errorReportsTo rdf:resource="mailto:ross@burtonini.com"/><item><title>Shoddy Compilers</title><guid isPermaLink="false">computers/crap-iar</guid><link>http://www.burtonini.com/blog/computers/crap-iar</link><description>Last Friday I got an email saying that the old compiler we use at work is actually generating the test/branch ...</description><content:encoded><![CDATA[  <p>
    Last Friday I got an email saying that the old compiler we use at work is
    actually generating the test/branch code in this snippet:
  </p>
  <blockquote><pre>
do {
 /* foo */
} while (0);
</pre></blockquote>
  <p>
    I signed, recited the habitual "crappy <a href="http://www.iar.se">IAR</a>"
    line, and blamed someone not turning on the optimiser.
  </p>
  <p>
    Until now.  I tried with the new "improved optimiser" compiler they sent us,
    which is supposed to be a lot better. The compiler isn't as brain-dead as
    the older one, which is nice.  However, this new optimiser still sucks:
  </p>
  <blockquote><pre>
main:
?0012:
        LDI     R16,LOW(?0013)
        LDI     R17,HIGH(?0013)
        LDI     R18,(?0013 >> 16)
        CALL    puts
        LDI     R16,LOW(0)
        TST     R16
        BRNE    ?0012
        RET

</pre></blockquote>
  <p>
    Oh wonderful.  This is with full size optimisations, and the result is the
    same with full speed optimisations. Curse the proprietary world and their
    shoddy compilers!
  </p>
]]></content:encoded><dc:date>2003-12-16T15:47:55Z</dc:date></item></channel></rss>