diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2007-11-12 22:21:37 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2007-11-12 21:21:37 +0000 |
commit | 2aac3a017189eddb8740b0de66243765ed505e0a (patch) | |
tree | 4e90b09d7ebd094cdf433aeb27f13654901ad0ce /gcc/gcse.c | |
parent | d51fba8ef2918636d8d51389297aa558b235d1ca (diff) | |
download | gcc-2aac3a017189eddb8740b0de66243765ed505e0a.tar.gz |
re PR rtl-optimization/34035 (ICE in calc_dfs_tree with -O2 -fnon-call-exceptions -ffast-math -fno-gcse)
PR rtl-optimization/34035
* cse.c (cse_cfg_altered): New global variable.
(cse_jumps_altered): Make boolean.
(recorded_label_ref): Likewise.
(cse_insn): Adjust for above changes.
(cse_extended_basic_block): Likewise. Set cse_cfg_altered
if dead edges have been purged.
(cse_main): Change return value specification and adjust code.
(rest_of_handle_cse): Adjust for above change.
(rest_of_handle_cse2): Likewise.
* gcse.c (rest_of_handle_gcse): Likewise.
From-SVN: r130122
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r-- | gcc/gcse.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c index 21d3da45185..c5e8c7b44f5 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -6737,13 +6737,15 @@ rest_of_handle_gcse (void) /* If gcse or cse altered any jumps, rerun jump optimizations to clean things up. */ - if (tem || tem2) + if (tem || tem2 == 2) { timevar_push (TV_JUMP); rebuild_jump_labels (get_insns ()); cleanup_cfg (0); timevar_pop (TV_JUMP); } + else if (tem2 == 1) + cleanup_cfg (0); flag_cse_skip_blocks = save_csb; flag_cse_follow_jumps = save_cfj; |