aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-06-27 18:53:43 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-06-27 18:53:43 +0000
commitb7091901cd984928b3599dc62507045dee1754d6 (patch)
tree84f496a9d6b5b6bc4fe24fd19e64d6e7e6d43e4a /gcc/tree-flow.h
parent04dbd891905aafb4186382d5417afeefc9522e67 (diff)
downloadgcc-b7091901cd984928b3599dc62507045dee1754d6.zip
gcc-b7091901cd984928b3599dc62507045dee1754d6.tar.gz
gcc-b7091901cd984928b3599dc62507045dee1754d6.tar.bz2
re PR tree-optimization/36400 (points-to results wrong)
2008-06-27 Richard Guenther <rguenther@suse.de> PR tree-optimization/36400 PR tree-optimization/36373 PR tree-optimization/36344 * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id, var_nonlocal, nonlocal_tree, nonlocal_id): New globals (update_alias_info): Remove call clobbering code. (make_constraint_to): New helper function. (make_escape_constraint): Likewise. (handle_rhs_call): Use it on all pointer containing arguments. Also mark the static chain escaped. (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED instead of ANYTHING. (make_constraint_from): New helper split out from ... (make_constraint_from_anything): ... here. (find_func_aliases): Add constraints for escape sites. (intra_create_variable_infos): Make constraints from NONLOCAL for parameters. (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same as ANYTHING. (clobber_what_p_points_to): Remove. (clobber_what_escaped): New function. (init_base_vars): Init NONLOCAL and ESCAPED. (do_sd_constraint): Do not propagate the solution from ESCAPED but use ESCAPED as a placeholder. (solve_graph): Likewise. * tree-flow.h (clobber_what_p_points_to): Remove. (clobber_what_escaped): Declare. * tree-ssa-alias.c (set_initial_properties): Call it. Remove code clobbering escaped pointers. * gcc.dg/torture/pr36373-1.c: New testcase. * gcc.dg/torture/pr36373-2.c: Likewise. * gcc.dg/torture/pr36373-3.c: Likewise. * gcc.dg/torture/pr36373-4.c: Likewise. * gcc.dg/torture/pr36373-5.c: Likewise. * gcc.dg/torture/pr36373-6.c: Likewise. * gcc.dg/torture/pr36373-7.c: Likewise. * gcc.dg/torture/pr36373-8.c: Likewise. * gcc.dg/torture/pr36373-9.c: Likewise. * gcc.dg/torture/pr36373-10.c: Likewise. * gcc.dg/torture/pr36400.c: Likewise. * gcc.c-torture/execute/pta-field-1.c: Likewise. * gcc.c-torture/execute/pta-field-2.c: Likewise. * gcc.dg/tree-ssa/loadpre8.c: Remove XFAIL. * gcc.dg/tree-ssa/pr24287.c: XFAIL. From-SVN: r137197
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 855f080..15329ac 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -1173,7 +1173,7 @@ tree gimple_fold_indirect_ref (tree);
/* In tree-ssa-structalias.c */
bool find_what_p_points_to (tree);
-bool clobber_what_p_points_to (tree);
+bool clobber_what_escaped (void);
/* In tree-ssa-live.c */
extern void remove_unused_locals (void);