re PR lto/54312 (uniquify_nodes takes 12% of Mozilla LTO build)
PR lto/54312 * lto.c (uniquify_nodes): Remove quadratic loop checking if the type is variant leader. From-SVN: r191228
This commit is contained in:
parent
ed56b7f958
commit
b5c7cdfb0a
|
@ -1,3 +1,9 @@
|
||||||
|
2012-09-11 Jan Hubicka <jh@suse.cz>
|
||||||
|
|
||||||
|
PR lto/54312
|
||||||
|
* lto.c (uniquify_nodes): Remove quadratic loop checking if the
|
||||||
|
type is variant leader.
|
||||||
|
|
||||||
2012-09-11 Richard Guenther <rguenther@suse.de>
|
2012-09-11 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
* lto.c (enum gtc_mode): Remove.
|
* lto.c (enum gtc_mode): Remove.
|
||||||
|
|
|
@ -1850,6 +1850,7 @@ uniquify_nodes (struct data_in *data_in, unsigned from)
|
||||||
variant list state before fixup is broken. */
|
variant list state before fixup is broken. */
|
||||||
tree tem, mv;
|
tree tem, mv;
|
||||||
|
|
||||||
|
#ifdef ENABLE_CHECKING
|
||||||
/* Remove us from our main variant list if we are not the
|
/* Remove us from our main variant list if we are not the
|
||||||
variant leader. */
|
variant leader. */
|
||||||
if (TYPE_MAIN_VARIANT (t) != t)
|
if (TYPE_MAIN_VARIANT (t) != t)
|
||||||
|
@ -1857,10 +1858,9 @@ uniquify_nodes (struct data_in *data_in, unsigned from)
|
||||||
tem = TYPE_MAIN_VARIANT (t);
|
tem = TYPE_MAIN_VARIANT (t);
|
||||||
while (tem && TYPE_NEXT_VARIANT (tem) != t)
|
while (tem && TYPE_NEXT_VARIANT (tem) != t)
|
||||||
tem = TYPE_NEXT_VARIANT (tem);
|
tem = TYPE_NEXT_VARIANT (tem);
|
||||||
if (tem)
|
gcc_assert (!tem && !TYPE_NEXT_VARIANT (t));
|
||||||
TYPE_NEXT_VARIANT (tem) = TYPE_NEXT_VARIANT (t);
|
|
||||||
TYPE_NEXT_VARIANT (t) = NULL_TREE;
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Query our new main variant. */
|
/* Query our new main variant. */
|
||||||
mv = GIMPLE_REGISTER_TYPE (TYPE_MAIN_VARIANT (t));
|
mv = GIMPLE_REGISTER_TYPE (TYPE_MAIN_VARIANT (t));
|
||||||
|
|
Loading…
Reference in New Issue