optimization, powerpc style
Bill McEnaney
bill@rkirkpat.net
Sat Feb 12 01:51:00 GMT 2011
I don't know the answer to Kevin's question, but why not replace the switch statement with an
array full of messages? Then use the message number as a subscript to choose the correct
message. He could keep the messages in a file that begins with the message count.
Kevin Diggs writes:
> Hi,
>
> Please ignore the first half of the original post. I used the size
> command to make a snap judgment on the code without looking very hard
> at the assembly I posted. After actually looking at the code I
> realized that I created the .o files from the wrong .s files. In this
> case the 4.3.5 compiler DOES do a better job.
>
> I still think the questions about the mesh compiles are valid if
> anyone has any thoughts.
>
> Thanks (and sorry)!
>
> kevin
>
> On Fri, Feb 11, 2011 at 11:15 AM, kevin diggs <diggskevin38@gmail.com> wrote:
> > Hi,
> >
> > While trying to figure out why the PowerMac mesh scsi driver will work
> > when compiled with 4.1.2 but not with 4.3.5 I noticed some strange
> > behavior with literal strings.
> >
> > #include <stdio.h>
> >
> > const char *getMsg(unsigned int u)
> > {
> > const char *p;
> >
> > switch(u)
> > {
> > case 0:
> > p="This is message 0"; break;
> > case 1:
> > p="This is message 1"; break;
> > case 2:
> > p="This is message 2"; break;
> > case 3:
> > p="This is message 3"; break;
> > case 4:
> > p="This is message 4"; break;
> > case 5:
> > p="This is message 5"; break;
> > default:
> > p=NULL;
> > }
> >
> > return p;
> > }
> >
> > This function when compiled with 3.4.6 produces pretty good code.
> > 4.3.5 produces lesser good code. Can someone suggest what I search the
> > bug database for to see if this has been reported and what the status
> > is? Is it PowerPC specific?
> >
>
>
________________________________________________________________
Please visit a saintly hero:
http://www.jakemoore.org
More information about the Gcc-help
mailing list