PATCH: Re: ICE in 920624-1.c with -O3 -funroll-loops on vax-dec-ultrix4.3
Jan Hubicka
jh@suse.cz
Wed Jan 16 09:49:00 GMT 2002
> > My approach in the cfg is to keep the tables around and sweep them once done
> > with CSE, but I guess it is easier to zap them to NOTE_INSN_DELETED_LABEL instead.
> > I plan to do that move on the cfg branch.
> >
> > In your case all you need is to use delete_insn_chain for the two insns that
> > cares to create the note instead.
>
> We have
>
> (jump (pc) (label_ref 1))
>
> (code_label 1)
>
> (jump_insn (addr_diff_vec:HI (label_ref: 1)
> ...
>
> You are suggesting deleting first two with NOTE_INSN_DELETED_LABEL?
> Of course, this would be done only when the jump goes to the next insn.
> This still leaves the jump table in live code which I don't like.
No, just remove the second two using remove_insn_chain call - that should
turn label to NOTE_INSN_DELETED_LABEL if it is still referenced and remove
the jumptable - that should be what you are looking for.
>
> Another alternative might be to add a code_label after the jump table
> and add a new jump before the first jump. This should make the three
> insn dead. Would this be safer?
That should work too, but it is bit complex.
Honza
>
> Dave
> --
> J. David Anglin dave.anglin@nrc.ca
> National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
More information about the Gcc-bugs
mailing list