I have been looking at code generated and I see a lot of inefficient code
generated.  When testing parts of bit fields I get the following code:

if (!elemofbitfield) {

bit.b    const,rX
clr.b    r15
adc.b    r15
and.b    #-1,r15
cmp      #lo(0),r15
jne      .Lxxx

This could be accomplished by:
bit.b    const,rX
jc       .Lxxx

It seems silly to waist all this.

I also see a lot of instances of this:

mov      rX,rY
mov      rY,rX

when the following has the same result and side effects:

mov      rX,rY

I have also seen something similar with long int moves.

I've been looking into writing something for the peephole2 optimizer but I
can't figure out the syntax.  Is there any help on this topic past 'info
gccint'?

-Chris Takahashi

Reply via email to