Handle sizes and kinds params of GOACC_paralllel in find_func_clobbers

2015-12-13  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds
	parameters of GOACC_paralllel.

From-SVN: r231595
This commit is contained in:
Tom de Vries 2015-12-13 12:43:21 +00:00 committed by Tom de Vries
parent 7fa658c2cc
commit 40e2341e42
2 changed files with 21 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2015-12-13 Tom de Vries <tom@codesourcery.com>
* tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds
parameters of GOACC_paralllel.
2015-12-10 Jan Hubicka <hubicka@ucw.cz>
* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed

View File

@ -5089,6 +5089,8 @@ find_func_clobbers (struct function *fn, gimple *origt)
case BUILT_IN_GOACC_PARALLEL:
{
unsigned int fnpos, argpos;
unsigned int implicit_use_args[2];
unsigned int num_implicit_use_args = 0;
switch (DECL_FUNCTION_CODE (decl))
{
case BUILT_IN_GOMP_PARALLEL:
@ -5101,6 +5103,8 @@ find_func_clobbers (struct function *fn, gimple *origt)
sizes, kinds, ...). */
fnpos = 1;
argpos = 3;
implicit_use_args[num_implicit_use_args++] = 4;
implicit_use_args[num_implicit_use_args++] = 5;
break;
default:
gcc_unreachable ();
@ -5121,6 +5125,18 @@ find_func_clobbers (struct function *fn, gimple *origt)
process_constraint (new_constraint (lhs, *rhsp));
rhsc.truncate (0);
/* Handle parameters used by the call, but not used in cfi, as
implicitly used by cfi. */
lhs = get_function_part_constraint (cfi, fi_uses);
for (unsigned i = 0; i < num_implicit_use_args; ++i)
{
tree arg = gimple_call_arg (t, implicit_use_args[i]);
get_constraint_for (arg, &rhsc);
FOR_EACH_VEC_ELT (rhsc, j, rhsp)
process_constraint (new_constraint (lhs, *rhsp));
rhsc.truncate (0);
}
/* The caller clobbers what the callee does. */
lhs = get_function_part_constraint (fi, fi_clobbers);
rhs = get_function_part_constraint (cfi, fi_clobbers);