[patches] crossjumping speedups
Pavel Machek
pavel@suse.cz
Tue Aug 7 13:12:00 GMT 2001
Hi!
> this patch restructure the tests made by crossjumping somewhat to
> cut down compilation time on Roman's testcase from 48% to 6%. Now
> it is about 3 times faster than original jump.c implementation.
>
> Fri Jul 20 20:55:04 CEST 2001 Jan Hubicka <jh@suse.cz>
> * (outgoing_edges_match): Cheap tests first.
> (try_crossjump_edge): Kill tests for BB to be non-forwarders.
> (try_crossjump_bb): Ensure BB is not forwarder; Avoid duplicated
> work.
>
> Index: flow.c
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/flow.c,v
> retrieving revision 1.430
> diff -c -3 -p -r1.430 flow.c
> *** flow.c 2001/07/18 17:11:10 1.430
> --- flow.c 2001/07/20 18:53:37
> *************** outgoing_edges_match (bb1, bb2)
> *** 3366,3371 ****
> --- 3366,3378 ----
> if (forwarder_block_p (f2->dest))
> f2 = f2->dest->succ;
>
> + if (f1->dest == f2->dest && b1->dest == b2->dest)
> + reverse = false;
> + else if (f1->dest == b2->dest && b1->dest == f2->dest)
> + reverse = true;
> + else
> + return false;
> +
> /* To simplify use of this function, return false if there are
> unneeded forwarder blocks. These will get eliminated later
> during cleanup_cfg. */
There's something very wrong with whitespace in this piece.
Pavel
--
I'm pavel@ucw.cz. "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at discuss@linmodems.org
More information about the Gcc-patches
mailing list