summaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2007-11-12 21:21:37 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2007-11-12 21:21:37 +0000
commit283a6b26950471c2464897089a0b2a5fbe7ac0b0 (patch)
tree4e90b09d7ebd094cdf433aeb27f13654901ad0ce /gcc/gcse.c
parent24057728ef5475e87d3f74dfa888646684bc258c (diff)
downloadgcc-283a6b26950471c2464897089a0b2a5fbe7ac0b0.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130122 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c4
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;