This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: 8/16bit oddities on avr-gcc
Michael Kukat writes:
> Hi,
>
> 2007/3/2, Rupert Wood <me@rupey.net>:
> > I think he wants the perftest.c.099t.optimized file that'd be generated on disk.
>
> ah, okay, didn't use that option for now, so i didn't know that the
> necessary info is written to files :) Here it comes:
>
> ;; Function test (test)
>
> Analyzing Edge Insertions.
> test ()
> {
> unsigned int ivtmp.28;
> uint8_t ivtmp.27;
> uint8_t pretmp.25;
> uint8_t ctr;
>
> <bb 0>:
> ivtmp.28 = 0;
>
> <L0>:;
> ctr = (uint8_t) ivtmp.28;
> xx = ctr;
> ivtmp.28 = ivtmp.28 + 1;
> if (ivtmp.28 != 64) goto <L0>; else goto <L1>;
>
> <L1>:;
> return;
>
> }
>
> Hm. It creates "unsigned int" for this comparison.
It does the same with my copy of gcc 4.1.2.
For -O2 gcc 4.3 does:
;; Function test (test)
Analyzing Edge Insertions.
test ()
{
uint8_t ctr;
<bb 2>:
xx = 0;
xx = 1;
ctr = 2;
<L0>:;
xx = ctr;
ctr = ctr + 1;
if (ctr != 64) goto <L0>; else goto <L1>;
<L1>:;
return;
(And, before you ask, I have no idea what the xx = 0; xx = 1; lines
are for!)
gcc 4.2 might do better than 4.1.
Andrew.