re PR middle-end/30905 (Fails to cross-jump)
authorSteven Bosscher <stevenb.gcc@gmail.com>
Fri, 11 Jan 2008 14:55:34 +0000 (14:55 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 11 Jan 2008 14:55:34 +0000 (14:55 +0000)
commitc1e3e2d94487bf594494cbb8cd32aa332124cd33
treeaf89a1d1e50ecbea2a77cdf1f64808b1fdd0dd05
parent8d0eca24faee76ac0ebc169695e4a79f390a5316
re PR middle-end/30905 (Fails to cross-jump)

2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>

PR rtl-optimization/30905
* cfgcleanup.c: Include dce.h
(crossjumps_occured): New global variable.
(try_crossjump_bb): Exit loop after finding a fallthru edge.
If something changed, set crossjumps_occured to true.
(try_optimize_cfg): Clear crossjumps_occured at the beginning.
Don't add/remove fake edges to exit here...
(cleanup_cfg): ...but do it here, when crossjumping.
Run a fast DCE when successful crossjumps occured in the latest
iteration of try_optimize_cfg.

From-SVN: r131468
gcc/ChangeLog
gcc/cfgcleanup.c