2010-07-21 Richard Guenther <rguenther@suse.de>
PR middle-end/45013
* tree-ssa.c (useless_type_conversion_p): Dispatch to
gimple_types_compatible_p only when in lto.
* gimple.c (gimple_types_compatible_p): Use canonical types
to speed up comparison.
From-SVN: r162371
+2010-07-21 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/45013
+ * tree-ssa.c (useless_type_conversion_p): Dispatch to
+ gimple_types_compatible_p only when in lto.
+ * gimple.c (gimple_types_compatible_p): Use canonical types
+ to speed up comparison.
+
2010-07-21 Richard Guenther <rguenther@suse.de>
* tree-flow.h (referenced_var): Move define ...
if (t1 == NULL_TREE || t2 == NULL_TREE)
return 0;
+ /* If the types have been previously registered and found equal
+ they still are. */
+ if (TYPE_CANONICAL (t1)
+ && TYPE_CANONICAL (t1) == TYPE_CANONICAL (t2))
+ return 1;
+
/* Can't be the same type if the types don't have the same code. */
if (TREE_CODE (t1) != TREE_CODE (t2))
return 0;
compared types. */
else if (AGGREGATE_TYPE_P (inner_type)
&& TREE_CODE (inner_type) == TREE_CODE (outer_type))
- return gimple_types_compatible_p (outer_type, inner_type, false);
+ return (in_lto_p
+ && gimple_types_compatible_p (outer_type, inner_type, false));
return false;
}