diff options
author | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-23 15:00:52 +0000 |
---|---|---|
committer | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-04-23 15:00:52 +0000 |
commit | c7d4e749ab92faf83fc174004e4a8780b148f658 (patch) | |
tree | 576c9b8b70b89942ab3e7e3c2ebe4abeb33d66ea /gcc/fortran | |
parent | 4f8f2f7617d071ba89e07fde5ff19a604c6d3f3a (diff) | |
download | gcc-c7d4e749ab92faf83fc174004e4a8780b148f658.tar.gz |
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
* tree-cfg.c (verify_expr): Check with is_gimple_address. Don't
check TREE_INVARIANT.
* tree-gimple.c (is_gimple_address): New.
(is_gimple_invariant_address): Simplify using decl_address_invariant_p.
* tree-gimple.h (is_gimple_address): New.
* tree.h (decl_address_invariant_p): New.
* tree.c (make_node_stat): Don't set TREE_INVARIANT.
(build_string): Likewise.
(decl_address_invariant_p): New, from is_gimple_invariant_address.
(tree_invariant_p_1): Likewise.
(save_expr): Use it.
(tree_invariant_p): New.
(skip_simple_arithmetic): Use it.
(stabilize_reference_1): Use it.
(recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
simplify.
(build1_stat): Drop code to compute TREE_INVARIANT.
(build2_stat): Drop code to compute TREE_INVARIANT.
(build3_stat): Drop code to compute TREE_INVARIANT.
(build4_stat): Drop code to compute TREE_INVARIANT.
(build5_stat): Drop code to compute TREE_INVARIANT.
(build7_stat): Drop code to compute TREE_INVARIANT.
(merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
* tree.h (struct tree_base): Remove invariant_flag.
(TREE_INVARIANT): Remove.
* builtins.c (build_string_literal): Don't set TREE_INVARIANT.
(fold_builtin_expect): Check TREE_CONSTANT.
* tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
* c-tree.h (c_expr_to_decl): Drop third parameter.
* c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
(build_c_cast): Don't set TREE_INVARIANT.
(pop_init_level): Don't set TREE_INVARIANT.
(c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
* gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
TREE_CONSTANT.
(gimplify_init_constructor): Don't set TREE_INVARIANT.
(gimplify_addr_expr): Adjust comment.
* tree-mudflap.c (mf_build_string):
* print-tree.c (print_node): Don't print TREE_INVARIANT.
* tree-nested.c (convert_nonlocal_reference): Adjust comment.
* c-common.c (fix_string_type): Don't set TREE_INVARIANT.
* langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
* langhooks.c (lhd_expr_to_decl): Drop third parameter.
* langhooks.h (struct lang_hooks): Drop third parameter from
expr_to_decl.
java:
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
* class.c (build_utf8_ref): Don't set TREE_INVARIANT.
(build_classdollar_field): Don't set TREE_INVARIANT.
(get_dispatch_table): Don't set TREE_INVARIANT.
(make_class_data): Don't set TREE_INVARIANT.
(build_symbol_entry): Don't set TREE_INVARIANT.
(emit_symbol_table): Don't set TREE_INVARIANT.
* constants.c (build_constant_data_ref): Don't set TREE_INVARIANT.
(build_ref_from_constant_pool): Don't set TREE_INVARIANT.
* resource.c (compile_resource_data): Don't set TREE_INVARIANT.
* expr.c (cache_cpool_data_ref): Don't set TREE_INVARIANT.
objc:
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
* objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT.
cp:
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
* typeck.c (get_member_function_from_ptrfunc): Don't set TREE_INVARIANT.
(build_ptrmemfunc1): Don't set TREE_INVARIANT.
* init.c (build_zero_init): Don't set TREE_INVARIANT.
* class.c (build_base_path): Don't set TREE_INVARIANT.
(build_vtbl_ref_1): Don't set TREE_INVARIANT.
(build_vtbl_initializer): Don't set TREE_INVARIANT.
* decl.c (build_enumerator): Don't set TREE_INVARIANT.
* rtti.c (tinfo_base_init): Don't set TREE_INVARIANT.
(generic_initializer): Don't set TREE_INVARIANT.
(ptr_initializer): Don't set TREE_INVARIANT.
(ptm_initializer): Don't set TREE_INVARIANT.
(class_initializer): Don't set TREE_INVARIANT.
* typeck2.c (process_init_constructor): Don't set TREE_INVARIANT.
* pt.c (push_inline_template_parms_recursive): Don't set TREE_INVARIANT.
(build_template_parm_index): Don't set TREE_INVARIANT.
(reduce_template_parm_level): Don't set TREE_INVARIANT.
(process_template_parm): Don't set TREE_INVARIANT.
ada:
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
* trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
(call_to_gnu): Don't set TREE_INVARIANT.
* utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
fortran:
2008-04-23 Paolo Bonzini <bonzini@gnu.org>
* trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
* trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
(gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
(gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
(gfc_conv_array_initializer): Don't set TREE_INVARIANT.
* trans-common.c (get_init_field): Don't set TREE_INVARIANT.
(create_common): Don't set TREE_INVARIANT.
* trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
* trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134599 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/fortran/trans-array.c | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-common.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans-decl.c | 2 | ||||
-rw-r--r-- | gcc/fortran/trans-expr.c | 5 | ||||
-rw-r--r-- | gcc/fortran/trans-stmt.c | 2 |
6 files changed, 13 insertions, 16 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1d9ca4dd368..dedc52ad0e0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,15 @@ +2008-04-23 Paolo Bonzini <bonzini@gnu.org> + + * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT. + * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT. + (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT. + (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT. + (gfc_conv_array_initializer): Don't set TREE_INVARIANT. + * trans-common.c (get_init_field): Don't set TREE_INVARIANT. + (create_common): Don't set TREE_INVARIANT. + * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT. + * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT. + 2008-04-21 Steve Ellcey <sje@cup.hp.com> * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode. diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index 7bac68dd650..5fc56883bc9 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -316,7 +316,6 @@ gfc_build_null_descriptor (tree type) /* Set a NULL data pointer. */ tmp = build_constructor_single (type, field, null_pointer_node); TREE_CONSTANT (tmp) = 1; - TREE_INVARIANT (tmp) = 1; /* All other fields are ignored. */ return tmp; @@ -1207,13 +1206,11 @@ gfc_trans_array_constructor_value (stmtblock_t * pblock, tree type, init = build_constructor_from_list (tmptype, nreverse (list)); TREE_CONSTANT (init) = 1; - TREE_INVARIANT (init) = 1; TREE_STATIC (init) = 1; /* Create a static variable to hold the data. */ tmp = gfc_create_var (tmptype, "data"); TREE_STATIC (tmp) = 1; TREE_CONSTANT (tmp) = 1; - TREE_INVARIANT (tmp) = 1; TREE_READONLY (tmp) = 1; DECL_INITIAL (tmp) = init; init = tmp; @@ -1582,13 +1579,11 @@ gfc_build_constant_array_constructor (gfc_expr * expr, tree type) init = build_constructor_from_list (tmptype, nreverse (list)); TREE_CONSTANT (init) = 1; - TREE_INVARIANT (init) = 1; TREE_STATIC (init) = 1; tmp = gfc_create_var (tmptype, "A"); TREE_STATIC (tmp) = 1; TREE_CONSTANT (tmp) = 1; - TREE_INVARIANT (tmp) = 1; TREE_READONLY (tmp) = 1; DECL_INITIAL (tmp) = init; @@ -3911,7 +3906,6 @@ gfc_conv_array_initializer (tree type, gfc_expr * expr) /* Create a constructor from the list of elements. */ tmp = build_constructor (type, v); TREE_CONSTANT (tmp) = 1; - TREE_INVARIANT (tmp) = 1; return tmp; } diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c index d7e3e645965..c6a386e0120 100644 --- a/gcc/fortran/trans-common.c +++ b/gcc/fortran/trans-common.c @@ -547,7 +547,6 @@ get_init_field (segment_info *head, tree union_type, tree *field_init, init = build_constructor (TREE_TYPE (field), v); TREE_CONSTANT (init) = 1; - TREE_INVARIANT (init) = 1; *field_init = init; @@ -657,7 +656,6 @@ create_common (gfc_common_head *com, segment_info *head, bool saw_equiv) gcc_assert (!VEC_empty (constructor_elt, v)); ctor = build_constructor (union_type, v); TREE_CONSTANT (ctor) = 1; - TREE_INVARIANT (ctor) = 1; TREE_STATIC (ctor) = 1; DECL_INITIAL (decl) = ctor; diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index e693f729ba4..84b059b1a78 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -3183,13 +3183,11 @@ gfc_generate_function_code (gfc_namespace * ns) 6))); array = build_constructor_from_list (array_type, nreverse (array)); TREE_CONSTANT (array) = 1; - TREE_INVARIANT (array) = 1; TREE_STATIC (array) = 1; /* Create a static variable to hold the jump table. */ var = gfc_create_var (array_type, "options"); TREE_CONSTANT (var) = 1; - TREE_INVARIANT (var) = 1; TREE_STATIC (var) = 1; TREE_READONLY (var) = 1; DECL_INITIAL (var) = array; diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 01672470331..aae1d72fe1f 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -3478,10 +3478,7 @@ gfc_conv_structure (gfc_se * se, gfc_expr * expr, int init) } se->expr = build_constructor (type, v); if (init) - { - TREE_CONSTANT(se->expr) = 1; - TREE_INVARIANT(se->expr) = 1; - } + TREE_CONSTANT (se->expr) = 1; } diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index e3f4cd456e8..5660ae61811 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -1435,12 +1435,10 @@ gfc_trans_character_select (gfc_code *code) init = build_constructor_from_list (type, nreverse(init)); TREE_CONSTANT (init) = 1; - TREE_INVARIANT (init) = 1; TREE_STATIC (init) = 1; /* Create a static variable to hold the jump table. */ tmp = gfc_create_var (type, "jumptable"); TREE_CONSTANT (tmp) = 1; - TREE_INVARIANT (tmp) = 1; TREE_STATIC (tmp) = 1; TREE_READONLY (tmp) = 1; DECL_INITIAL (tmp) = init; |