This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Peepholes obsolete / new peepholes
- To: Kazu Hirata <kazu at hxi dot com>
- Subject: Re: Peepholes obsolete / new peepholes
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 15 Aug 2000 14:55:02 -0600
- cc: gcc <gcc at gcc dot gnu dot org>
- Reply-To: law at cygnus dot com
In message <41ECF07CC183D111A6F800805FEDAB190CE6CF@EXCHANGE1>you write:
> > If that's the case, then the way we should deal with it is
> > ADDRESS_COST
> > rather than an arbitrary choice that doesn't allow any target to DTRT.
>
> OK. What if ADDRESS_COST is not defined? Can I simply try
> pre-increment/decrement or do something fancy (rtx_cost, etc) as in cse.c?
I believe rtx_cost is supposed to be used if address_cost is not
defined.
> I am thinking about using "! reg_set_p ()" for that. Would that work?
Probably.
> By the way, I am now trying the attached patch. It's working in
> h8300-hms-gcc. When I tried the following sample code with arm-coff-gcc, it
> hit abort () in haifa-sched.c:7060, causing an internal compiler error. An
> y
> clue? Looking at the dump after the life analysis phase, things look OK.
Check the REG_DEAD notes for a register that was auto-incremented. Presumably
they're incorrect.
Basically flow.c & haifa-sched.c both determine what registers are live/dead.
If they disagree, then something bad has happened.
jeff