aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2016-05-19 13:50:22 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2016-05-19 13:50:22 +0000
commitafb7243286fdf0ffdc965027e5d382604fe191f8 (patch)
tree5290bca9513f9d27a69e5fcf7b9ff24a6cef820f /gcc/cse.c
parent4f83064e3bf64e5b6fe615a49ee84cf61b0ac954 (diff)
downloadgcc-afb7243286fdf0ffdc965027e5d382604fe191f8.zip
gcc-afb7243286fdf0ffdc965027e5d382604fe191f8.tar.gz
gcc-afb7243286fdf0ffdc965027e5d382604fe191f8.tar.bz2
cse.c (cse_main): Free dominance info.
gcc/ * cse.c (cse_main): Free dominance info. (rest_of_handle_cse): Don't free dominance info. (rest_of_handle_cse2): Likewise. (rest_of_handle_cse_after_global_opts): Likewise. gcc/testsuite/ * gcc.dg/pr71148.c: New test. From-SVN: r236460
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 322e352..bce4fb0 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6669,6 +6669,10 @@ cse_main (rtx_insn *f ATTRIBUTE_UNUSED, int nregs)
int *rc_order = XNEWVEC (int, last_basic_block_for_fn (cfun));
int i, n_blocks;
+ /* CSE doesn't use dominane info but can invalidate it in different ways.
+ For simplicity free dominance info here. */
+ free_dominance_info (CDI_DOMINATORS);
+
df_set_flags (DF_LR_RUN_DCE);
df_note_add_problem ();
df_analyze ();
@@ -7568,9 +7572,6 @@ rest_of_handle_cse (void)
else if (tem == 1 || optimize > 1)
cse_cfg_altered |= cleanup_cfg (0);
- if (cse_cfg_altered && dom_info_available_p (CDI_DOMINATORS))
- free_dominance_info (CDI_DOMINATORS);
-
return 0;
}
@@ -7640,9 +7641,6 @@ rest_of_handle_cse2 (void)
else if (tem == 1)
cse_cfg_altered |= cleanup_cfg (0);
- if (cse_cfg_altered && dom_info_available_p (CDI_DOMINATORS))
- free_dominance_info (CDI_DOMINATORS);
-
cse_not_expected = 1;
return 0;
}
@@ -7717,9 +7715,6 @@ rest_of_handle_cse_after_global_opts (void)
else if (tem == 1)
cse_cfg_altered |= cleanup_cfg (0);
- if (cse_cfg_altered && dom_info_available_p (CDI_DOMINATORS))
- free_dominance_info (CDI_DOMINATORS);
-
flag_cse_follow_jumps = save_cfj;
return 0;
}