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: Re-enable crossjumping before bb-reorder


> On Thu, May 02, 2002 at 06:33:43PM +0200, Jan Hubicka wrote:
> > The patch to disable crossjumping is also not safe when the tablejump
> > is killed for diferent purpose - dead code is eliminated for instance.
> 
> If dead code is eliminated, then the DCE pass will also delete
> the tablejump address load, which is fine.

When the tablejump address load gets hoisted out of the loop and spilled
to the stack, it won't be elliminated., so I think it is really not
safe to remove tablejump postreload.
> 
> > 	* cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed jumps
> > 	post reload.
> > 	* toplev.c (rest_of_compilation): Revert Richard's patch.
> 
> I think we'd be better off having reg-stack do a specialized form 
> in which the contents of the edge insertions are compared.

As I've mentioned in the privately this won't catch scenarios where the same
instruction is emitted to the end of basic block, that is relatively common.
Even w/o floats the last crossjumping run hits some cases.

Honza
> 
> 
> r~


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