Commit ede31f6f by Jan Hubicka Committed by Jan Hubicka

tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): Rename to ...


	* tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
	Rename to ...
	(nonoverlapping_refs_since_match_p): ... this; handle also
	ARRAY_REFs.
	(alias_stats): Update stats.
	(dump_alias_stats): Likewise.
	(cheap_array_ref_low_bound): New function.
	(aliasing_matching_component_refs_p): Add partial_overlap
	argument;
	pass it to nonoverlapping_refs_since_match_p.
	(aliasing_component_refs_walk): Update call of
	aliasing_matching_component_refs_p
	(nonoverlapping_array_refs_p): New function.
	(decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
	indirect_refs_may_alias_p): Update calls of
	nonoverlapping_refs_since_match_p.

	* gcc.dg/tree-ssa/alias-access-path-10.c: New testcase.
	* gcc.dg/tree-ssa/alias-access-path-11.c: New testcase.

From-SVN: r276427
parent 11f2ce1f
2019-10-01 Jan Hubicka <hubicka@ucw.cz>
* tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
Rename to ...
(nonoverlapping_refs_since_match_p): ... this; handle also
ARRAY_REFs.
(alias_stats): Update stats.
(dump_alias_stats): Likewise.
(cheap_array_ref_low_bound): New function.
(aliasing_matching_component_refs_p): Add partial_overlap
argument;
pass it to nonoverlapping_refs_since_match_p.
(aliasing_component_refs_walk): Update call of
aliasing_matching_component_refs_p
(nonoverlapping_array_refs_p): New function.
(decl_refs_may_alias_p, indirect_ref_may_alias_decl_p,
indirect_refs_may_alias_p): Update calls of
nonoverlapping_refs_since_match_p.
2019-10-01 Maya Rashish <coypu@sdf.org> 2019-10-01 Maya Rashish <coypu@sdf.org>
PR target/85401 PR target/85401
......
2019-10-01 Jan Hubicka <hubicka@ucw.cz> 2019-10-01 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/tree-ssa/alias-access-path-10.c: New testcase.
* gcc.dg/tree-ssa/alias-access-path-11.c: New testcase.
2019-10-01 Jan Hubicka <hubicka@ucw.cz>
* g++.dg/lto/odr-6_0.C: New testcase. * g++.dg/lto/odr-6_0.C: New testcase.
* g++.dg/lto/odr-6_1.c: New testcase. * g++.dg/lto/odr-6_1.c: New testcase.
......
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-fre1" } */
struct a {int array[3];} a[10];
int
test(int i,int j)
{
a[i].array[1]=123;
a[j].array[2]=2;
return a[i].array[1];
}
/* { dg-final { scan-tree-dump-times "return 123" 1 "fre1"} } */
/* { dg-do compile } */
/* { dg-options "-O2 -fno-strict-aliasing -fdump-tree-fre3" } */
typedef int outerarray[10][10][10];
typedef int innerarray[10][10];
outerarray *barptr;
int
test(int i,int j)
{
innerarray *innerptr = (innerarray *)barptr;
(*barptr)[i][2][j]=10;;
(*innerptr)[3][j]=11;
return (*barptr)[i][2][j];
}
/* { dg-final { scan-tree-dump-times "return 10" 1 "fre3"} } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment