* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Jan 2007 21:36:17 +0000 (21:36 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Jan 2007 21:36:17 +0000 (21:36 +0000)
        Do not add referenced vars.
        * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
        are not active.
        * passes.c (init_optimization_passes): Put mudflap_2 after
        free_datastructures.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120358 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/passes.c
gcc/tree-cfg.c
gcc/tree-mudflap.c

index 4a37568..31d6001 100644 (file)
@@ -1,5 +1,14 @@
 2007-01-02  Jan Hubicka  <jh@suse.cz>
 
+        * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
+        Do not add referenced vars.
+        * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
+        are not active.
+        * passes.c (init_optimization_passes): Put mudflap_2 after
+        free_datastructures.
+
+2007-01-02  Jan Hubicka  <jh@suse.cz>
+
        * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
        Set NOTHROW flag on call statements proved to be nothrow.
        Update statement of local calls so new pure/const functions are
index 4588421..ebf5586 100644 (file)
@@ -476,8 +476,8 @@ init_optimization_passes (void)
   NEXT_PASS (pass_expand_omp);
   NEXT_PASS (pass_all_optimizations);
   NEXT_PASS (pass_warn_function_noreturn);
-  NEXT_PASS (pass_mudflap_2);
   NEXT_PASS (pass_free_datastructures);
+  NEXT_PASS (pass_mudflap_2);
   NEXT_PASS (pass_free_cfg_annotations);
   NEXT_PASS (pass_expand);
   NEXT_PASS (pass_rest_of_compilation);
index 51c0d26..1803907 100644 (file)
@@ -2803,6 +2803,8 @@ bsi_for_stmt (tree stmt)
 static inline void
 update_modified_stmts (tree t)
 {
+  if (!ssa_operands_active ())
+    return;
   if (TREE_CODE (t) == STATEMENT_LIST)
     {
       tree_stmt_iterator i;
index 209dc00..4d80c19 100644 (file)
@@ -460,14 +460,12 @@ mf_decl_cache_locals (void)
      globals into the cache variables.  */
   t = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (mf_cache_shift_decl_l),
               mf_cache_shift_decl_l, mf_cache_shift_decl);
-  add_referenced_var (mf_cache_shift_decl);
   SET_EXPR_LOCATION (t, DECL_SOURCE_LOCATION (current_function_decl));
   gimplify_to_stmt_list (&t);
   shift_init_stmts = t;
 
   t = build2 (GIMPLE_MODIFY_STMT, TREE_TYPE (mf_cache_mask_decl_l),
               mf_cache_mask_decl_l, mf_cache_mask_decl);
-  add_referenced_var (mf_cache_mask_decl);
   SET_EXPR_LOCATION (t, DECL_SOURCE_LOCATION (current_function_decl));
   gimplify_to_stmt_list (&t);
   mask_init_stmts = t;
@@ -573,17 +571,13 @@ mf_build_check_statement_for (tree base, tree limit,
                                             & __mf_mask].  */
   t = build2 (RSHIFT_EXPR, mf_uintptr_type, mf_base,
               (flag_mudflap_threads ? mf_cache_shift_decl : mf_cache_shift_decl_l));
-  add_referenced_var (mf_cache_shift_decl);
   t = build2 (BIT_AND_EXPR, mf_uintptr_type, t,
               (flag_mudflap_threads ? mf_cache_mask_decl : mf_cache_mask_decl_l));
-  add_referenced_var (mf_cache_mask_decl);
   t = build4 (ARRAY_REF,
               TREE_TYPE (TREE_TYPE (mf_cache_array_decl)),
               mf_cache_array_decl, t, NULL_TREE, NULL_TREE);
-  add_referenced_var (mf_cache_array_decl);
   t = build1 (ADDR_EXPR, mf_cache_structptr_type, t);
   t = build2 (GIMPLE_MODIFY_STMT, void_type_node, mf_elem, t);
-  add_referenced_var (mf_elem);
   SET_EXPR_LOCUS (t, locus);
   gimplify_to_stmt_list (&t);
   tsi_link_after (&tsi, t, TSI_CONTINUE_LINKING);
@@ -607,7 +601,6 @@ mf_build_check_statement_for (tree base, tree limit,
               build1 (INDIRECT_REF, mf_cache_struct_type, mf_elem),
               TYPE_FIELDS (mf_cache_struct_type), NULL_TREE);
   t = build2 (GT_EXPR, boolean_type_node, t, mf_base);
-  add_referenced_var (mf_base);
 
   /* Construct '__mf_elem->high < __mf_limit'.