diff options
author | Jan Hubicka <jh@suse.cz> | 2002-03-28 13:25:21 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-03-28 12:25:21 +0000 |
commit | f5eb5fd0d6e8d476d164c57d4c1ca1248e83c8ee (patch) | |
tree | c975b4080bd3d5dadf4179b7b9ad2f7233bac1f2 /gcc/cfgcleanup.c | |
parent | ac43cbb50723665947ac875f70f0035e09f00680 (diff) | |
download | gcc-f5eb5fd0d6e8d476d164c57d4c1ca1248e83c8ee.zip gcc-f5eb5fd0d6e8d476d164c57d4c1ca1248e83c8ee.tar.gz gcc-f5eb5fd0d6e8d476d164c57d4c1ca1248e83c8ee.tar.bz2 |
rtlanal.c: Include flags.h
* rtlanal.c: Include flags.h
(may_trap_p): Do not mark FP operations if trapping
if !flag_trapping_math
* Makefile.in (rtlanal.o): Add dependency on flag.h
* ifcvt.c (noce_operand_ok): Avoid the lameness.
From-SVN: r51508
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r-- | gcc/cfgcleanup.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index a1d5c64..f31f168 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -1467,6 +1467,7 @@ try_crossjump_bb (mode, bb) { edge e, e2, nexte2, nexte, fallthru; bool changed; + int n = 0; /* Nothing to do if there is not at least two incoming edges. */ if (!bb->pred || !bb->pred->pred_next) @@ -1475,9 +1476,13 @@ try_crossjump_bb (mode, bb) /* It is always cheapest to redirect a block that ends in a branch to a block that falls through into BB, as that adds no branches to the program. We'll try that combination first. */ - for (fallthru = bb->pred; fallthru; fallthru = fallthru->pred_next) - if (fallthru->flags & EDGE_FALLTHRU) - break; + for (fallthru = bb->pred; fallthru; fallthru = fallthru->pred_next, n++) + { + if (fallthru->flags & EDGE_FALLTHRU) + break; + if (n > 100) + return false; + } changed = false; for (e = bb->pred; e; e = nexte) |