This is the mail archive of the gcc@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]

Re: egcs-1.1 status


Jeffrey A Law writes:
 > The problem is that reload can/will silently trash registers holding
 > parameters while trying to satisfy reloads for later register loads.
 > Note that reloads can be triggers in many non-obvious ways on the x86
 > due to the way the machine description was written.

Am I correct in thinking that the x86 machine description relies
too heavily on the reload pass to fix things up and that it should
use tighter predicates and the extra condition to check for valid
operand combinations?

 >   > Jeff, you always seem to take compiler problems to be something really
 >   > negative. I would urge you and the other egcs developers to see this as
 >   > something _positive_ where you can actually look into the problem and try
 >   > to fix it, instead of throwing up your hands and saying "oh, gods, I can't
 >   > handle this, let's remove the feature".
 > Please do not make this personal again.  This is a purely technical
 > issue.  *I* do not have the time to rewrite reload.  And as I mentioned
 > I would love for someone to step up and do that.  Until such time as
 > reload is rewritten, using regparm is a horribly bad thing to do
 > because it will eventually end up causing you problems.

I agree with Jeff that, sure the problem is solvable, but to fix it is
certainly non-trivial.  A new reload pass is going to break many
things faster than it fixes things for a long time to come...

I've been slowly working my way through it and have been writing up
some notes on how it currently works.  I'm sure other folks must have
done likewise.  May I suggest that the first step is to improve the
documentation of the reload pass so as to remove some of the mystique.
The docs should say what it tries to do, what it does, and what it
should do.

I also imagine that reload probably needs more guidance from the
backends as to how to fix a given problem.



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