This is the mail archive of the gcc-patches@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: 4 GCC regressions, 2 new, with your patch on 2002-07-18T09:56:17Z.


> 
> I don't think your patch represents a good design.  If it's important
> to keep hard register lifetimes short, then that problem should be
> solved in a general way, not by having special code for just one case
> in just one of the many routines that insert insns.
Another idea:
We do have similar way of handling this problem in other routines
inserting insns that are matching in between conditional and flags set
instruction.  In the most cases it is handled by canonicalizing
condition of the jump and using earliest value returned by
canonicalize_condition in loop.c

Our case is slightly different, as we simply do insert the code and we
don't interpret the condition in any way, so thats why I am using
shorter way of doing the trick.  In case it looks cleaner to you, I may
use the canonicalize_condition way as used in the rest of compiler.

Honza
> 
> > > This code really doesn't feel right to me.  There could be many
> > > unexpected consequences.
> 
> For instance, you used single_set, but I think that's wrong in this
> case, because a CLOBBER might mean the instruction has a conflict with
> the insn you're moving over.
> 
> I think you also don't check that the basic block actually has more
> than one insn.  What happens if first instruction in a program is a
> (conditional?) jump?
> 
> -- 
> - Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>


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