PR tree-optimization/16867 * tree.c (is_global_var): New function. (needs_to_live_in_memory): Check for TREE_ADDRESSABLE. Call is_global_var. * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove. Update all users. (is_global_var): Declare. * tree-dfa.c (dump_variable): Display global and addressable attributes. (add_referenced_var): Clarify documentation when marking variables call-clobbered. * tree-flow-inline.h (is_call_clobbered): Call is_global_var instead of needs_to_live_in_memory. (mark_call_clobbered): If the variable is a tag, mark it DECL_EXTERNAL. * tree-gimple.c (is_gimple_reg): Don't check for TREE_ADDRESSABLE. (is_gimple_non_addressable): Likewise. * tree-ssa-alias.c (get_nmt_for): Always check whether the tag needs to be marked call-clobbered. (setup_pointers_and_addressables): Call is_global_var instead of needs_to_live_in_memory. * tree-ssa-dce.c (need_to_preserve_store): Remove. Update all users with is_global_var. (mark_stmt_if_obviously_necessary): Fix processing of aliased stores. Don't check the virtual definitions. Rather, check whether the store is going into global memory. (find_obviously_necessary_stmts): Get the symbol from the PHI result. * tree-ssa-operands.c (get_call_expr_operands): Do not add clobbering may-defs if the call does not have side effects. libjava/ChangeLog PR tree-optimization/16867 * testsuite/libjava.lang/PR16867.java: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85874 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/ChangeLog 34 additions, 0 deletionsgcc/ChangeLog
- gcc/tree-dfa.c 8 additions, 3 deletionsgcc/tree-dfa.c
- gcc/tree-flow-inline.h 7 additions, 4 deletionsgcc/tree-flow-inline.h
- gcc/tree-gimple.c 1 addition, 4 deletionsgcc/tree-gimple.c
- gcc/tree-ssa-alias.c 10 additions, 13 deletionsgcc/tree-ssa-alias.c
- gcc/tree-ssa-dce.c 76 additions, 30 deletionsgcc/tree-ssa-dce.c
- gcc/tree-ssa-operands.c 2 additions, 2 deletionsgcc/tree-ssa-operands.c
- gcc/tree.c 10 additions, 3 deletionsgcc/tree.c
- gcc/tree.h 2 additions, 11 deletionsgcc/tree.h
- libjava/ChangeLog 5 additions, 0 deletionslibjava/ChangeLog
- libjava/testsuite/libjava.lang/PR16867.java 17 additions, 0 deletionslibjava/testsuite/libjava.lang/PR16867.java
- libjava/testsuite/libjava.lang/PR16867.out 1 addition, 0 deletionslibjava/testsuite/libjava.lang/PR16867.out
Loading
Please register or sign in to comment