This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Abort in redirect_edge_and_branch on vax at line 866
- From: Jan Hubicka <jh at suse dot cz>
- To: law at redhat dot com
- Cc: Jan Hubicka <jh at suse dot cz>, John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>, gcc-bugs at gcc dot gnu dot org, rth at redhat dot com
- Date: Thu, 10 Jan 2002 16:21:05 +0100
- Subject: Re: Abort in redirect_edge_and_branch on vax at line 866
- References: <20020110092535.GB14428@atrey.karlin.mff.cuni.cz> <27266.1010673759@porcupine.cygnus.com>
> > > The above doesn't match the "blt" pattern so I presume that it hasn't
> > > been re-recognized. "(set (pc) (pc))" would probably match the movsi
> > > pattern because GENERAL_REGS is ALL_REGS. Are you suggesting this
> > > needs to change?
> > No, se my other email - what happent was that gcse did changed jump into
> > noop-set (original blt instruction) and left it in the instruction stream
> > not cleaning up afterwards.
> gcse probably should have set INSN_CODE (blah) = -1; when it did this to
> avoid confusion.
>
> Yes, the instruction is left in the insn stream -- that's the whole point
> behind running the jump optimizer afterwards -- to zap any nop jumps in the
> stream.
There is no jump optimizier and cfg_cleanup does not the job.
delete_trivially_dead_insns does and I most probably did mistake not adding
the function directly afterwards when zapping the jump optimizer.
Would you preffer to change the code to run the delete_trivial_dead_insns
and not delete the insn instead?
(dleting trivially dead insns is probably something that really should
happen, I am just bootstrapping the change, but I don't see point to do
the patching out yet and it is more complicated than just delte the insn
now).
Honza
>
> jeff