diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-19 01:42:48 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-19 01:42:48 +0000 |
commit | 7bbb6ff8a2c6a4b9be50769f8b7bce25ef3f75c9 (patch) | |
tree | 1bea89da9c401e1b8e235d514d1d027b81c0eece /gcc/tree-flow-inline.h | |
parent | bd4dc62d8cc4f1bbfadf82a378e78a20630c597f (diff) | |
download | gcc-7bbb6ff8a2c6a4b9be50769f8b7bce25ef3f75c9.tar.gz |
2006-01-16 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
(ssa_ro_call_cache_valid): Ditto.
* tree-ssa-alias.c (sort_tags_by_id): New function.
(init_transitive_clobber_worklist): Ditto.
(add_to_worklist): Ditto.
(mark_aliases_call_clobbered): Ditto.
(compute_tag_properties): Ditto.
(set_initial_properties): Ditto.
(compute_call_clobbered): Ditto.
(compute_may_aliases): Call compute_call_clobbered and grouping.
(compute_flow_sensitive_aliasing): Remove clobbering related code.
(compute_flow_insensitive_aliasing): Grouping now happens in our
caller.
(setup_pointers_and_addressables): Remove clobbering related code.
(add_may_alias): Ditto.
(replace_may_alias): Ditto.
(get_nmt_for): Ditto.
(create_global_var):
(is_escape_site): Return an escape_type enumeration.
* tree-flow-inline.h (is_call_clobbered): Global var does not
imply call clobbered.
(mark_call_clobbered): Take a reason for marking this. Remove
marking of globalness, and cache invalidation.
(clear_call_clobbered): Remove cache invalidation code.
* tree-dfa.c (dump_variable): If details is on, dump the reason
for escaping.
* tree-outof-ssa.c (create_temp): Copy escape mask from original
variable.
* tree-flow.h (struct ptr_info_def): Add escape mask member.
(struct var_ann_d): Ditto.
(enum escape_type): New.
(mark_call_clobbered): Adjust prototype.
* tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
are never call clobbered.
Record reasons for escaping.
* tree-ssa-structalias.h (is_escape_site): Update prototype.
* tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
(ssa_ro_call_cache_valid): Ditto.
(clobbered_v_may_defs): Ditto.
(clobbered_vuses): Ditto.
(ro_call_vuses): Ditto.
(clobber_stats): New.
(init_ssa_operands): Zero out clobber stats.
(fini_ssa_operands): Print out clobber stats.
(get_call_expr_operands): Pass callee fndecl to
add_call_read_ops).
(add_call_clobber_ops): Remove use of cache.
Add use of PURE_CONST information.
(add_call_read_ops): Remove use of cache.
Add use of static not_read information.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109938 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-flow-inline.h')
-rw-r--r-- | gcc/tree-flow-inline.h | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index 7e36ccc0e2a..69bef68f9ac 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -843,34 +843,26 @@ loop_containing_stmt (tree stmt) static inline bool is_call_clobbered (tree var) { - return is_global_var (var) - || bitmap_bit_p (call_clobbered_vars, DECL_UID (var)); + return bitmap_bit_p (call_clobbered_vars, DECL_UID (var)); } /* Mark variable VAR as being clobbered by function calls. */ static inline void -mark_call_clobbered (tree var) +mark_call_clobbered (tree var, unsigned int escape_type) { - /* If VAR is a memory tag, then we need to consider it a global - variable. This is because the pointer that VAR represents has - been found to point to either an arbitrary location or to a known - location in global memory. */ - if (MTAG_P (var) && TREE_CODE (var) != STRUCT_FIELD_TAG) - MTAG_GLOBAL (var) = 1; + var_ann (var)->escape_mask |= escape_type; bitmap_set_bit (call_clobbered_vars, DECL_UID (var)); - ssa_call_clobbered_cache_valid = false; - ssa_ro_call_cache_valid = false; } /* Clear the call-clobbered attribute from variable VAR. */ static inline void clear_call_clobbered (tree var) { + var_ann_t ann = var_ann (var); + ann->escape_mask = 0; if (MTAG_P (var) && TREE_CODE (var) != STRUCT_FIELD_TAG) MTAG_GLOBAL (var) = 0; bitmap_clear_bit (call_clobbered_vars, DECL_UID (var)); - ssa_call_clobbered_cache_valid = false; - ssa_ro_call_cache_valid = false; } /* Mark variable VAR as being non-addressable. */ @@ -879,8 +871,6 @@ mark_non_addressable (tree var) { bitmap_clear_bit (call_clobbered_vars, DECL_UID (var)); TREE_ADDRESSABLE (var) = 0; - ssa_call_clobbered_cache_valid = false; - ssa_ro_call_cache_valid = false; } /* Return the common annotation for T. Return NULL if the annotation |