Commit 1c28d12f by Jan Hubicka Committed by Jan Hubicka

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


	* tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
	to ..
	(nonoverlapping_component_refs_since_match_p): ... this one;
	handle also non-decl bases; return -1 if search gave up.
	(alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
	nonoverlapping_component_refs_of_decl_p_no_alias to
	nonoverlapping_component_refs_since_match_p_may_alias,
	nonoverlapping_component_refs_since_match_p_no_alias.
	(dump_alias_stats): Update dumping.
	(aliasing_matching_component_refs_p):  Break out from ...;
	dispatch to nonoverlapping_component_refs_for_decl_p
	and nonoverlapping_component_refs_since_match_p.
	(aliasing_component_refs_p): ... here; call
	nonoverlapping_component_refs_p in scenarios where we can not
	precisely determine base match.
	(decl_refs_may_alias_p): Use
	nonoverlapping_component_refs_since_match_p.
	(indirect_ref_may_alias_decl_p): Do not call
	nonoverlapping_component_refs_p.
	(indirect_refs_may_alias_p): Likewise.

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

From-SVN: r272926
parent f51b4aed
2019-07-02 Jan Hubicka <jh@suse.cz> 2019-07-02 Jan Hubicka <jh@suse.cz>
* tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
to ..
(nonoverlapping_component_refs_since_match_p): ... this one;
handle also non-decl bases; return -1 if search gave up.
(alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
nonoverlapping_component_refs_of_decl_p_no_alias to
nonoverlapping_component_refs_since_match_p_may_alias,
nonoverlapping_component_refs_since_match_p_no_alias.
(dump_alias_stats): Update dumping.
(aliasing_matching_component_refs_p): Break out from ...;
dispatch to nonoverlapping_component_refs_for_decl_p
and nonoverlapping_component_refs_since_match_p.
(aliasing_component_refs_p): ... here; call
nonoverlapping_component_refs_p in scenarios where we can not
precisely determine base match.
(decl_refs_may_alias_p): Use
nonoverlapping_component_refs_since_match_p.
(indirect_ref_may_alias_decl_p): Do not call
nonoverlapping_component_refs_p.
(indirect_refs_may_alias_p): Likewise.
2019-07-02 Jan Hubicka <jh@suse.cz>
* tree-inline.c (remap_gimple_stmt): Do not subtitute handled components * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
to clobber of return value. to clobber of return value.
......
2019-07-02 Jan Hubicka <jh@suse.cz> 2019-07-02 Jan Hubicka <jh@suse.cz>
* gcc.dg/tree-ssa/alias-access-path-7.c: New testcase.
2019-07-02 Jan Hubicka <jh@suse.cz>
* g++.dg/lto/pr90990_0.C: New testcase. * g++.dg/lto/pr90990_0.C: New testcase.
2019-07-02 Richard Biener <rguenther@suse.de> 2019-07-02 Richard Biener <rguenther@suse.de>
......
/* { dg-do compile } */
/* { dg-options "-O1 -fno-strict-aliasing -fdump-tree-optimized" } */
struct S
{
int i;
int j;
};
struct U
{
struct S a[10];
};
int
foo (struct U *u, int n, int i, int j)
{
u->a[i].i = 123;
u->a[j].j = j;
return u->a[i].i;
}
/* { dg-final { scan-tree-dump-times "return 123" 1 "optimized"} } */
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