This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]