summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2019-06-20 16:18:02 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2019-06-20 14:18:02 +0000
commitd1a7d8de4689f32bf39047f3f2797f7c30ce2777 (patch)
tree50c2d3b91c849342a2e2b7e812c60639b8533e90 /gcc/tree-ssa-alias.c
parent86f73527aa3556b7d5ead9b03d8a5c91d351a409 (diff)
tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl parameter; it has no use in gimple memory model.
* tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl parameter; it has no use in gimple memory model. (indirect_ref_may_alias_decl_p): Update. * gcc.c-torture/execute/alias-access-path-1.c: New testcase. From-SVN: r272510
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r--gcc/tree-ssa-alias.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 11f0e8e1784..111f375bb4a 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -850,8 +850,7 @@ type_has_components_p (tree type)
/* Determine if the two component references REF1 and REF2 which are
based on access types TYPE1 and TYPE2 and of which at least one is based
- on an indirect reference may alias. REF2 is the only one that can
- be a decl in which case REF2_IS_DECL is true.
+ on an indirect reference may alias.
REF1_ALIAS_SET, BASE1_ALIAS_SET, REF2_ALIAS_SET and BASE2_ALIAS_SET
are the respective alias sets. */
@@ -863,8 +862,7 @@ aliasing_component_refs_p (tree ref1,
tree ref2,
alias_set_type ref2_alias_set,
alias_set_type base2_alias_set,
- poly_int64 offset2, poly_int64 max_size2,
- bool ref2_is_decl)
+ poly_int64 offset2, poly_int64 max_size2)
{
/* If one reference is a component references through pointers try to find a
common base and apply offset based disambiguation. This handles
@@ -982,7 +980,7 @@ aliasing_component_refs_p (tree ref1,
if (TREE_CODE (TREE_TYPE (base1)) == ARRAY_TYPE
&& (!TYPE_SIZE (TREE_TYPE (base1))
|| TREE_CODE (TYPE_SIZE (TREE_TYPE (base1))) != INTEGER_CST
- || (ref == base2 && !ref2_is_decl)))
+ || ref == base2))
{
++alias_stats.aliasing_component_refs_p_may_alias;
return true;
@@ -1041,7 +1039,7 @@ aliasing_component_refs_p (tree ref1,
if (TREE_CODE (TREE_TYPE (base2)) == ARRAY_TYPE
&& (!TYPE_SIZE (TREE_TYPE (base2))
|| TREE_CODE (TYPE_SIZE (TREE_TYPE (base2))) != INTEGER_CST
- || (ref == base1 && !ref2_is_decl)))
+ || ref == base1))
{
++alias_stats.aliasing_component_refs_p_may_alias;
return true;
@@ -1089,8 +1087,7 @@ aliasing_component_refs_p (tree ref1,
return true;
}
/* If this is ptr vs. decl then we know there is no ptr ... decl path. */
- if (!ref2_is_decl
- && compare_type_sizes (TREE_TYPE (ref1), type2) >= 0
+ if (compare_type_sizes (TREE_TYPE (ref1), type2) >= 0
&& (!end_struct_ref2
|| compare_type_sizes (TREE_TYPE (ref1),
TREE_TYPE (end_struct_ref2)) >= 0)
@@ -1554,13 +1551,7 @@ indirect_ref_may_alias_decl_p (tree ref1 ATTRIBUTE_UNUSED, tree base1,
offset1, max_size1,
ref2,
ref2_alias_set, base2_alias_set,
- offset2, max_size2,
- /* Only if the other reference is actual
- decl we can safely check only toplevel
- part of access path 1. */
- same_type_for_tbaa (TREE_TYPE (dbase2),
- TREE_TYPE (base2))
- == 1);
+ offset2, max_size2);
return true;
}
@@ -1675,7 +1666,7 @@ indirect_refs_may_alias_p (tree ref1 ATTRIBUTE_UNUSED, tree base1,
offset1, max_size1,
ref2,
ref2_alias_set, base2_alias_set,
- offset2, max_size2, false);
+ offset2, max_size2);
return true;
}