]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/33092 (Using -O1 -fno-tree-salias results in ICE)
authorManuel López-Ibáñez <manu@gcc.gnu.org>
Tue, 22 Jan 2008 13:27:52 +0000 (13:27 +0000)
committerManuel López-Ibáñez <manu@gcc.gnu.org>
Tue, 22 Jan 2008 13:27:52 +0000 (13:27 +0000)
2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

PR middle-end/33092
* tree-pass.h (pass_build_alias): New pass.
* tree-ssa-alias.c (gate_build_alias): New.
(pass_build_alias): New.
* passes.c (init_optimization_passes): Add pass_build_alias after
pass_create_structure_vars.

testsuite/
* gcc.dg/pr33092.c: New.

From-SVN: r131717

gcc/ChangeLog
gcc/passes.c
gcc/testsuite/ChangeLog
gcc/tree-pass.h
gcc/tree-ssa-alias.c

index fe329dffbd1d6e2cc86be63ac837e0f72696d3df..1da929ce72733419676d141a63af4633c1827acb 100644 (file)
@@ -1,3 +1,12 @@
+2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR middle-end/33092
+       * tree-pass.h (pass_build_alias): New pass.
+       * tree-ssa-alias.c (gate_build_alias): New.
+       (pass_build_alias): New.
+       * passes.c (init_optimization_passes): Add pass_build_alias after
+       pass_create_structure_vars.
+
 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
 
        * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
index 48f78b42be8d2b8748d8f1750eb5fb661e60c186..2614c90b3ca85354c4f6bf45efc1627cb68e9d4a 100644 (file)
@@ -557,6 +557,10 @@ init_optimization_passes (void)
     {
       struct tree_opt_pass **p = &pass_all_optimizations.sub;
       NEXT_PASS (pass_create_structure_vars);
+      /* ??? pass_build_alias is a dummy pass that ensures that we
+        execute TODO_rebuild_alias at this point even if
+        pass_create_structure_vars was disabled.  */
+      NEXT_PASS (pass_build_alias);
       NEXT_PASS (pass_return_slot);
       NEXT_PASS (pass_rename_ssa_copies);
 
index e73eae9c736fba5c71b7c50a6cb4566a5222c4be..1c9c54c9b967932fe80a6a1443938fbd7319c5ca 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       PR middle-end/33092
+       * gcc.dg/pr33092.c: New.
+
 2008-01-22  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * gcc.target/s390/20020926-1.c: Add -m31 option.
index 3eda29ec44d1741101fc3acc59e2806b8282bf9f..fe73332dee1b21f8fc7d6a213e1eabca82bcffaa 100644 (file)
@@ -278,6 +278,7 @@ extern struct tree_opt_pass pass_ccp;
 extern struct tree_opt_pass pass_phi_only_cprop;
 extern struct tree_opt_pass pass_build_ssa;
 extern struct tree_opt_pass pass_del_ssa;
+extern struct tree_opt_pass pass_build_alias;
 extern struct tree_opt_pass pass_dominator;
 extern struct tree_opt_pass pass_dce;
 extern struct tree_opt_pass pass_dce_loop;
index 13ec95b9e9d0b1f33ae353e25e6c16dfde3156a6..7ab2f6b5473eda48a7425625c82482cccc96bae3 100644 (file)
@@ -4252,3 +4252,27 @@ struct tree_opt_pass pass_reset_cc_flags =
   0,                    /* todo_flags_finish */
   0                     /* letter */
 };
+
+static bool
+gate_build_alias (void)
+{
+  return !gate_structure_vars();
+}
+
+
+struct tree_opt_pass pass_build_alias =
+{
+  "build_alias",            /* name */
+  gate_build_alias,         /* gate */
+  NULL,                     /* execute */
+  NULL,                     /* sub */
+  NULL,                     /* next */
+  0,                        /* static_pass_number */
+  0,                        /* tv_id */
+  PROP_cfg | PROP_ssa,      /* properties_required */
+  PROP_alias,               /* properties_provided */
+  0,                        /* properties_destroyed */
+  0,                        /* todo_flags_start */
+  TODO_rebuild_alias,        /* todo_flags_finish */
+  0                         /* letter */
+};