From: Tom de Vries Date: Mon, 26 Oct 2015 10:47:00 +0000 (+0000) Subject: Add vars in intra_create_variables_info X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=306fa91bda69b9ebb411876fa7ac54532c63e3f7;p=gcc.git Add vars in intra_create_variables_info 2015-10-26 Tom de Vries * tree-ssa-structalias.c (intra_create_variable_infos): Add restrict_pointer_p and recursive_restrict_p variables. From-SVN: r229323 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b9ddd71192..e4a8b88981c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-10-26 Tom de Vries + + * tree-ssa-structalias.c (intra_create_variable_infos): Add + restrict_pointer_p and recursive_restrict_p variables. + 2015-10-26 Tom de Vries * tree-ssa-structalias.c (intra_create_variable_infos): Inline diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index c5a7e2a3be5..1e1ae95a297 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -5857,6 +5857,11 @@ intra_create_variable_infos (struct function *fn) passed-by-reference argument. */ for (t = DECL_ARGUMENTS (fn->decl); t; t = DECL_CHAIN (t)) { + bool restrict_pointer_p = (POINTER_TYPE_P (TREE_TYPE (t)) + && TYPE_RESTRICT (TREE_TYPE (t))); + bool recursive_restrict_p + = (restrict_pointer_p + && !type_contains_placeholder_p (TREE_TYPE (TREE_TYPE (t)))); varinfo_t p = lookup_vi_for_tree (t); if (p == NULL) { @@ -5868,9 +5873,7 @@ intra_create_variable_infos (struct function *fn) the pointed-to object. Note that this ends up handling out-of-bound references conservatively by aggregating them in the first/last subfield of the object. */ - if (POINTER_TYPE_P (TREE_TYPE (t)) - && TYPE_RESTRICT (TREE_TYPE (t)) - && !type_contains_placeholder_p (TREE_TYPE (TREE_TYPE (t)))) + if (recursive_restrict_p) { varinfo_t vi; tree heapvar = build_fake_var_decl (TREE_TYPE (TREE_TYPE (t))); @@ -5890,8 +5893,7 @@ intra_create_variable_infos (struct function *fn) continue; } - if (POINTER_TYPE_P (TREE_TYPE (t)) - && TYPE_RESTRICT (TREE_TYPE (t))) + if (restrict_pointer_p) make_constraint_from_global_restrict (p, "PARM_RESTRICT"); else {