2005-10-18 Daniel Berlin <dberlin@dberlin.org>
commit7e89c463920cc649a528c7e0cac3f7fa874b44a4
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 Oct 2005 14:00:53 +0000 (19 14:00 +0000)
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 Oct 2005 14:00:53 +0000 (19 14:00 +0000)
tree71e80edef3af434731a6cafedc5cbca15a55bdc2
parent0171526a0a241db603e8af789df1f083752afc76
2005-10-18  Daniel Berlin  <dberlin@dberlin.org>

Fix PR tree-optimization/24287
* tree-dfa.c (dump_variable): Print reasons for call clobbering.
* tree-flow.h (struct ptr_info_def): Add escape mask to pointer.
(ESCAPE_TRANSITIVE): Removed.
(ESCAPE_TO_PURE_CONST): New.
(ESCAPE_IS_PARM): New.
(ESCAPE_UNKNOWN): New.
* tree-ssa-alias.c (set_initial_properties): Incoming pointers are
value escaping.
Pointers that point to anything are not.
Use pointer escape mask.
(is_escape_site): Use ESCAPE_TO_PURE_CONST.
* tree-ssa-operands.c (add_call_clobber_ops): Clean up a bit.
Things that *only* escape to pure/const functions are only read by
pure/const functions, and are not clobbered by the non-pure/const
functions.
(add_call_read_ops): Cleanup.
* tree-ssa-structalias.c (update_alias_info): Use pi->escape_mask,
not v_ann.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/improved-aliasing-branch@105615 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog.iab
gcc/cp/ptree.c
gcc/passes.c
gcc/testsuite/gcc.dg/tree-ssa/pr24287.c [new file with mode: 0644]
gcc/tree-dfa.c
gcc/tree-flow.h
gcc/tree-ssa-alias.c
gcc/tree-ssa-operands.c
gcc/tree-ssa-structalias.c