Commit bd04cddf by Jan Hubicka Committed by Jan Hubicka

* alias.c (alias_set_subset_of, alias_sets_must_conflict_p)

	Short circuit for !flag_strict_aliasing
	(get_alias_set): Remove flag_strict_aliasing check.
	(new_alias_set): Likewise.

From-SVN: r231239
parent 5ec1ae3b
2015-12-03 Jan Hubicka <hubicka@ucw.cz>
* alias.c (alias_set_subset_of, alias_sets_must_conflict_p)
Short circuit for !flag_strict_aliasing
(get_alias_set): Remove flag_strict_aliasing check.
(new_alias_set): Likewise.
2015-12-03 Evandro Menezes <e.menezes@samsung.com> 2015-12-03 Evandro Menezes <e.menezes@samsung.com>
* config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model. * config/aarch64/aarch64-cores.def: Use the Exynos M1 cost model.
...@@ -405,6 +405,10 @@ alias_set_subset_of (alias_set_type set1, alias_set_type set2) ...@@ -405,6 +405,10 @@ alias_set_subset_of (alias_set_type set1, alias_set_type set2)
{ {
alias_set_entry *ase2; alias_set_entry *ase2;
/* Disable TBAA oracle with !flag_strict_aliasing. */
if (!flag_strict_aliasing)
return true;
/* Everything is a subset of the "aliases everything" set. */ /* Everything is a subset of the "aliases everything" set. */
if (set2 == 0) if (set2 == 0)
return true; return true;
...@@ -537,6 +541,9 @@ alias_sets_conflict_p (alias_set_type set1, alias_set_type set2) ...@@ -537,6 +541,9 @@ alias_sets_conflict_p (alias_set_type set1, alias_set_type set2)
int int
alias_sets_must_conflict_p (alias_set_type set1, alias_set_type set2) alias_sets_must_conflict_p (alias_set_type set1, alias_set_type set2)
{ {
/* Disable TBAA oracle with !flag_strict_aliasing. */
if (!flag_strict_aliasing)
return 1;
if (set1 == 0 || set2 == 0) if (set1 == 0 || set2 == 0)
{ {
++alias_stats.num_alias_zero; ++alias_stats.num_alias_zero;
...@@ -816,10 +823,12 @@ get_alias_set (tree t) ...@@ -816,10 +823,12 @@ get_alias_set (tree t)
{ {
alias_set_type set; alias_set_type set;
/* If we're not doing any alias analysis, just assume everything /* We can not give up with -fno-strict-aliasing because we need to build
aliases everything else. Also return 0 if this or its type is proper type representation for possible functions which are build with
an error. */ -fstirct-aliasing. */
if (! flag_strict_aliasing || t == error_mark_node
/* return 0 if this or its type is an error. */
if (t == error_mark_node
|| (! TYPE_P (t) || (! TYPE_P (t)
&& (TREE_TYPE (t) == 0 || TREE_TYPE (t) == error_mark_node))) && (TREE_TYPE (t) == 0 || TREE_TYPE (t) == error_mark_node)))
return 0; return 0;
...@@ -1085,15 +1094,10 @@ get_alias_set (tree t) ...@@ -1085,15 +1094,10 @@ get_alias_set (tree t)
alias_set_type alias_set_type
new_alias_set (void) new_alias_set (void)
{ {
if (flag_strict_aliasing) if (alias_sets == 0)
{ vec_safe_push (alias_sets, (alias_set_entry *) NULL);
if (alias_sets == 0) vec_safe_push (alias_sets, (alias_set_entry *) NULL);
vec_safe_push (alias_sets, (alias_set_entry *) NULL); return alias_sets->length () - 1;
vec_safe_push (alias_sets, (alias_set_entry *) NULL);
return alias_sets->length () - 1;
}
else
return 0;
} }
/* Indicate that things in SUBSET can alias things in SUPERSET, but that /* Indicate that things in SUBSET can alias things in SUPERSET, but that
......
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