This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Fix PR43464: update loop closed SSA form once copy prop is done


On Thu, Apr 1, 2010 at 06:00, Richard Guenther <rguenther@suse.de> wrote:
> On Wed, 31 Mar 2010, Sebastian Pop wrote:
>
>> On Mon, Mar 29, 2010 at 10:26, Sebastian Pop <sebpop@gmail.com> wrote:
>> > PS: to reproduce the errors described here you would need the attached
>> > patches.
>>
>> The attached patch systematically adds a TODO_verify_loops to all the
>> passes that work at the LNO level. ?Would this be ok for trunk after
>> testing and bootstrap?
>
> It would probably be better to automatically schedule this from
> the pass manager if current_loops != NULL. ?Anyway, this looks like
> stage1 material to me.

You mean a patch like this?
Ok for 4.6 if it passes regstrap?

Thanks,
Sebastian
From 1e72253c4fe58037a3887a3d633bb80bbef52fe8 Mon Sep 17 00:00:00 2001
From: Sebastian Pop <sebpop@gmail.com>
Date: Thu, 1 Apr 2010 09:38:57 -0500
Subject: [PATCH] Always execute verify_loop_closed_ssa at LNO level.

---
 gcc/passes.c                 |    2 +-
 gcc/tree-if-conv.c           |    2 +-
 gcc/tree-loop-distribution.c |    2 +-
 gcc/tree-pass.h              |    1 -
 gcc/tree-ssa-loop.c          |   28 +++++++++++++---------------
 5 files changed, 16 insertions(+), 19 deletions(-)

diff --git a/gcc/passes.c b/gcc/passes.c
index 1ac8694..4ed4c47 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -1262,7 +1262,7 @@ execute_function_todo (void *data)
     verify_flow_info ();
   if (flags & TODO_verify_stmts)
     verify_stmts ();
-  if (flags & TODO_verify_loops)
+  if (current_loops)
     verify_loop_closed_ssa ();
   if (flags & TODO_verify_rtl_sharing)
     verify_rtl_sharing ();
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 7f193ec..a008384 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -1180,7 +1180,7 @@ struct gimple_opt_pass pass_if_conversion =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops | TODO_verify_stmts | TODO_verify_flow
+  TODO_dump_func | TODO_verify_stmts | TODO_verify_flow
                                         /* todo_flags_finish */
  }
 };
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 74120c6..cb0c6b1 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -1242,6 +1242,6 @@ struct gimple_opt_pass pass_loop_distribution =
   0,				/* properties_provided */
   0,				/* properties_destroyed */
   0,				/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops            /* todo_flags_finish */
+  TODO_dump_func                /* todo_flags_finish */
  }
 };
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 383a164..81889e4 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -238,7 +238,6 @@ struct dump_file_info
 #define TODO_verify_flow		(1 << 3)
 #define TODO_verify_stmts		(1 << 4)
 #define TODO_cleanup_cfg        	(1 << 5)
-#define TODO_verify_loops		(1 << 6)
 #define TODO_dump_cgraph		(1 << 7)
 #define TODO_remove_functions		(1 << 8)
 #define TODO_rebuild_frequencies	(1 << 9)
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index 591890c..fbf8d59 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -97,7 +97,7 @@ struct gimple_opt_pass pass_tree_loop_init =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops	/* todo_flags_finish */
+  TODO_dump_func			/* todo_flags_finish */
  }
 };
 
@@ -134,7 +134,7 @@ struct gimple_opt_pass pass_lim =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops	/* todo_flags_finish */
+  TODO_dump_func			/* todo_flags_finish */
  }
 };
 
@@ -170,8 +170,7 @@ struct gimple_opt_pass pass_tree_unswitch =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_ggc_collect | TODO_dump_func
-    | TODO_verify_loops		 	/* todo_flags_finish */
+  TODO_ggc_collect | TODO_dump_func 	/* todo_flags_finish */
  }
 };
 
@@ -208,7 +207,7 @@ struct gimple_opt_pass pass_predcom =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops
+  TODO_dump_func
     | TODO_update_ssa_only_virtuals	/* todo_flags_finish */
  }
 };
@@ -244,7 +243,7 @@ struct gimple_opt_pass pass_vectorize =
   PROP_cfg | PROP_ssa,                  /* properties_required */
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
-  TODO_verify_loops,			/* todo_flags_start */
+  0,					/* todo_flags_start */
   TODO_dump_func | TODO_update_ssa
     | TODO_ggc_collect			/* todo_flags_finish */
  }
@@ -283,7 +282,7 @@ struct gimple_opt_pass pass_linear_transform =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops
+  TODO_dump_func
     | TODO_update_ssa_only_virtuals
     | TODO_ggc_collect			/* todo_flags_finish */
  }
@@ -329,7 +328,7 @@ struct gimple_opt_pass pass_graphite_transforms =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_verify_loops			/* todo_flags_finish */
+  0					/* todo_flags_finish */
  }
 };
 
@@ -402,7 +401,7 @@ struct gimple_opt_pass pass_iv_canon =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops	/* todo_flags_finish */
+  TODO_dump_func			/* todo_flags_finish */
  }
 };
 
@@ -501,7 +500,7 @@ struct gimple_opt_pass pass_complete_unroll =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops
+  TODO_dump_func
     | TODO_ggc_collect			/* todo_flags_finish */
  }
 };
@@ -548,7 +547,7 @@ struct gimple_opt_pass pass_complete_unrolli =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops
+  TODO_dump_func
     | TODO_ggc_collect 			/* todo_flags_finish */
  }
 };
@@ -587,7 +586,7 @@ struct gimple_opt_pass pass_parallelize_loops =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops	/* todo_flags_finish */
+  TODO_dump_func			/* todo_flags_finish */
  }
 };
 
@@ -623,7 +622,7 @@ struct gimple_opt_pass pass_loop_prefetch =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops	/* todo_flags_finish */
+  TODO_dump_func			/* todo_flags_finish */
  }
 };
 
@@ -660,8 +659,7 @@ struct gimple_opt_pass pass_iv_optimize =
   0,					/* properties_provided */
   0,					/* properties_destroyed */
   0,					/* todo_flags_start */
-  TODO_dump_func | TODO_verify_loops
-  | TODO_update_ssa | TODO_ggc_collect	/* todo_flags_finish */
+  TODO_dump_func | TODO_update_ssa | TODO_ggc_collect	/* todo_flags_finish */
  }
 };
 
-- 
1.6.3.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]