This is the mail archive of the gcc-bugs@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: Abort in redirect_edge_and_branch on vax at line 866


>   > > 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


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