(free_df): Update comments.
* tree-flow.h (free_df_for_stmt): Prototype.
* tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also
call release_defs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87531
138bc75d-0d04-0410-961f-
82ee72b054a4
+2004-09-14 Jeff Law <law@redhat.com>
+
+ * tree-dfa.c (free_df_for_stmt): No longer static.
+ (free_df): Update comments.
+ * tree-flow.h (free_df_for_stmt): Prototype.
+ * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also
+ call release_defs.
+
2004-09-14 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/17252
}
-/* Invalidates dataflow information for a statement STMT. */
+/* Invalidates dataflow information for a statement STMT. */
-static void
+void
free_df_for_stmt (tree stmt)
{
dataflow_t *df;
}
-/* Invalidate dataflow information for the whole function. */
+/* Invalidate dataflow information for the whole function.
+
+ Note this only invalidates dataflow information on statements and
+ PHI nodes which are reachable.
+
+ A deleted statement may still have attached dataflow information
+ on it. */
void
free_df (void)
extern void debug_immediate_uses_for (tree);
extern void compute_immediate_uses (int, bool (*)(tree));
extern void free_df (void);
+extern void free_df_for_stmt (tree);
extern tree get_virtual_var (tree);
extern void add_referenced_tmp_var (tree var);
extern void mark_new_vars_to_rename (tree, bitmap);
This allows us to cascade dead stores. */
redirect_immediate_uses (stmt, skipped_phi ? skipped_phi : use);
+ /* Be sure to remove any dataflow information attached to
+ this statement. */
+ free_df_for_stmt (stmt);
+
+ /* And release any SSA_NAMEs set in this statement back to the
+ SSA_NAME manager. */
+ release_defs (stmt);
+
/* Finally remove the dead store. */
bsi_remove (&bsi);
}