From b5c7cdfb0a1331bbed96c6e1c4f7e832fe070100 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Wed, 12 Sep 2012 18:26:19 +0200 Subject: [PATCH] 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 --- gcc/lto/ChangeLog | 6 ++++++ gcc/lto/lto.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index fdbf896b1cb..85d59b23faf 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2012-09-11 Jan Hubicka + + PR lto/54312 + * lto.c (uniquify_nodes): Remove quadratic loop checking if the + type is variant leader. + 2012-09-11 Richard Guenther * lto.c (enum gtc_mode): Remove. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index e6b63550ff7..c87ad6cfb06 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1850,6 +1850,7 @@ uniquify_nodes (struct data_in *data_in, unsigned from) variant list state before fixup is broken. */ tree tem, mv; +#ifdef ENABLE_CHECKING /* Remove us from our main variant list if we are not the variant leader. */ if (TYPE_MAIN_VARIANT (t) != t) @@ -1857,10 +1858,9 @@ uniquify_nodes (struct data_in *data_in, unsigned from) tem = TYPE_MAIN_VARIANT (t); while (tem && TYPE_NEXT_VARIANT (tem) != t) tem = TYPE_NEXT_VARIANT (tem); - if (tem) - TYPE_NEXT_VARIANT (tem) = TYPE_NEXT_VARIANT (t); - TYPE_NEXT_VARIANT (t) = NULL_TREE; + gcc_assert (!tem && !TYPE_NEXT_VARIANT (t)); } +#endif /* Query our new main variant. */ mv = GIMPLE_REGISTER_TYPE (TYPE_MAIN_VARIANT (t));