ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL...
* ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL; do not check AGGREGATE_TYPE_P when adding TYPE_MODE; Check that all record types are complete. * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not compare alias sets for types w/o alias sets. From-SVN: r230698
This commit is contained in:
parent
65310691f8
commit
5e83f17dd0
@ -1,3 +1,11 @@
|
||||
2015-11-07 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
* ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
|
||||
do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
|
||||
Check that all record types are complete.
|
||||
* ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
|
||||
compare alias sets for types w/o alias sets.
|
||||
|
||||
2015-11-20 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* config/sparc/sparc.md (umulxhi_vis): Move around.
|
||||
|
@ -233,7 +233,15 @@ func_checker::compatible_types_p (tree t1, tree t2)
|
||||
if (!types_compatible_p (t1, t2))
|
||||
return return_false_with_msg ("types are not compatible");
|
||||
|
||||
if (get_alias_set (t1) != get_alias_set (t2))
|
||||
/* We do a lot of unnecesary matching of types that are not being
|
||||
accessed and thus do not need to be compatible. In longer term we should
|
||||
remove these checks on all types which are not accessed as memory
|
||||
locations.
|
||||
|
||||
For time being just avoid calling get_alias_set on types that are not
|
||||
having alias sets defined at all. */
|
||||
if (type_with_alias_set_p (t1) && type_with_alias_set_p (t2)
|
||||
&& get_alias_set (t1) != get_alias_set (t2))
|
||||
return return_false_with_msg ("alias sets are different");
|
||||
|
||||
return true;
|
||||
|
@ -1543,11 +1543,8 @@ sem_item::add_type (const_tree type, inchash::hash &hstate)
|
||||
}
|
||||
|
||||
type = TYPE_MAIN_VARIANT (type);
|
||||
if (TYPE_CANONICAL (type))
|
||||
type = TYPE_CANONICAL (type);
|
||||
|
||||
if (!AGGREGATE_TYPE_P (type))
|
||||
hstate.add_int (TYPE_MODE (type));
|
||||
hstate.add_int (TYPE_MODE (type));
|
||||
|
||||
if (TREE_CODE (type) == COMPLEX_TYPE)
|
||||
{
|
||||
@ -1574,6 +1571,7 @@ sem_item::add_type (const_tree type, inchash::hash &hstate)
|
||||
}
|
||||
else if (RECORD_OR_UNION_TYPE_P (type))
|
||||
{
|
||||
gcc_checking_assert (COMPLETE_TYPE_P (type));
|
||||
hashval_t *val = optimizer->m_type_hash_cache.get (type);
|
||||
|
||||
if (!val)
|
||||
|
Loading…
Reference in New Issue
Block a user