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: [PATCH]: Fix PA debug-[12].c regressions


> Alternately, the return insn that we're combining into,
> is that a member of a scope?  If not, then we could arrange
> for combinations of insns to assign a scope if one isn't
> already set...

I believe that insn_scope returns 0 for it.  I don't think
it's necessary to assign a scope.

In looking at the problem on the alpha, I noticed a couple of
things.  On the alpha, R0_REG is in a class with a size of 1,
so the return insn never combines.  In studying why the return
insn wasn't being eliminated on the PA with the patch, I realized
that we weren't allocating registers in the right order (i.e.,
we should allocate the return register before the argument
registers.  When this is done, the register allocater is more
likely to choose the return register and this results in the
return insn being deleted in the greg pass.  For debug-1.c,
this results in identical code being generated.

I recognize that the patch probably causes a performance loss
in some cases.  I must admit that I'd pay something for better
debugging.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)


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