From fa784ce1f9d21ddaa842f8ffeb15116285955f56 Mon Sep 17 00:00:00 2001 From: hubicka Date: Tue, 2 Jan 2007 21:36:17 +0000 Subject: [PATCH] * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120358 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 9 +++++++++ gcc/passes.c | 2 +- gcc/tree-cfg.c | 2 ++ gcc/tree-mudflap.c | 7 ------- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4a37568..31d6001 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 2007-01-02 Jan Hubicka + * 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 + * 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 diff --git a/gcc/passes.c b/gcc/passes.c index 4588421..ebf5586 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -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); diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 51c0d26..1803907 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -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; diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c index 209dc00..4d80c19 100644 --- a/gcc/tree-mudflap.c +++ b/gcc/tree-mudflap.c @@ -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'. -- 2.7.4