aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2016-05-13 09:55:58 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2016-05-13 09:55:58 +0000
commitda7674f6a6bd485ee250f1dcd53daec68090827e (patch)
treeabfd6b8beb45cb61957f2b753e3353f06e762297 /gcc
parentc959db3d3b344fa2e21fdd79768e2349d7c2db25 (diff)
downloadgcc-da7674f6a6bd485ee250f1dcd53daec68090827e.zip
gcc-da7674f6a6bd485ee250f1dcd53daec68090827e.tar.gz
gcc-da7674f6a6bd485ee250f1dcd53daec68090827e.tar.bz2
cse.c (rest_of_handle_cse): Use cleanup_cfg returned value cse_cfg_altered computation.
gcc/ * cse.c (rest_of_handle_cse): Use cleanup_cfg returned value cse_cfg_altered computation. (rest_of_handle_cse2): Likewise. (rest_of_handle_cse_after_global_opts): Likewise. gcc/testsuite/ * gcc.dg/pr71084.c: New test. From-SVN: r236199
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cse.c12
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/pr71084.c38
4 files changed, 55 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27deda6..0346cbc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ * cse.c (rest_of_handle_cse): Use cleanup_cfg
+ returned value cse_cfg_altered computation.
+ (rest_of_handle_cse2): Likewise.
+ (rest_of_handle_cse_after_global_opts): Likewise.
+
2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/53440
diff --git a/gcc/cse.c b/gcc/cse.c
index 04e1a85..322e352 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7562,11 +7562,11 @@ rest_of_handle_cse (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
- cleanup_cfg (CLEANUP_CFG_CHANGED);
+ cse_cfg_altered |= cleanup_cfg (CLEANUP_CFG_CHANGED);
timevar_pop (TV_JUMP);
}
else if (tem == 1 || optimize > 1)
- cleanup_cfg (0);
+ cse_cfg_altered |= cleanup_cfg (0);
if (cse_cfg_altered && dom_info_available_p (CDI_DOMINATORS))
free_dominance_info (CDI_DOMINATORS);
@@ -7634,11 +7634,11 @@ rest_of_handle_cse2 (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
- cleanup_cfg (CLEANUP_CFG_CHANGED);
+ cse_cfg_altered |= cleanup_cfg (CLEANUP_CFG_CHANGED);
timevar_pop (TV_JUMP);
}
else if (tem == 1)
- cleanup_cfg (0);
+ cse_cfg_altered |= cleanup_cfg (0);
if (cse_cfg_altered && dom_info_available_p (CDI_DOMINATORS))
free_dominance_info (CDI_DOMINATORS);
@@ -7711,11 +7711,11 @@ rest_of_handle_cse_after_global_opts (void)
{
timevar_push (TV_JUMP);
rebuild_jump_labels (get_insns ());
- cleanup_cfg (CLEANUP_CFG_CHANGED);
+ cse_cfg_altered |= cleanup_cfg (CLEANUP_CFG_CHANGED);
timevar_pop (TV_JUMP);
}
else if (tem == 1)
- cleanup_cfg (0);
+ cse_cfg_altered |= cleanup_cfg (0);
if (cse_cfg_altered && dom_info_available_p (CDI_DOMINATORS))
free_dominance_info (CDI_DOMINATORS);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e3b0280..4547ce3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ * gcc.dg/pr71084.c: New test.
+
2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/53440
diff --git a/gcc/testsuite/gcc.dg/pr71084.c b/gcc/testsuite/gcc.dg/pr71084.c
new file mode 100644
index 0000000..46fdf9f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr71084.c
@@ -0,0 +1,38 @@
+/* PR tree-optimization/71084 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+void babl_format (void);
+void gimp_drawable_get_format (void);
+int _setjmp (void);
+
+enum {
+ GIMP_RGB_IMAGE,
+ GIMP_RGBA_IMAGE,
+ GIMP_GRAY_IMAGE,
+ GIMP_GRAYA_IMAGE,
+ GIMP_INDEXED_IMAGE
+} run_i;
+
+int run_height;
+
+void fn1 ()
+{
+ int type, width;
+ if (_setjmp ())
+ switch (type)
+ {
+ case GIMP_RGB_IMAGE:
+ babl_format ();
+ case GIMP_RGBA_IMAGE:
+ case GIMP_GRAY_IMAGE:
+ babl_format ();
+ case GIMP_GRAYA_IMAGE:
+ case GIMP_INDEXED_IMAGE:
+ gimp_drawable_get_format();
+ }
+ for (; run_height;)
+ for (; run_i < (long)fn1; ++run_i)
+ for (; width;)
+ ;
+}