]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR lto/54312 (uniquify_nodes takes 12% of Mozilla LTO build)
authorJan Hubicka <jh@suse.cz>
Wed, 12 Sep 2012 16:26:19 +0000 (18:26 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 12 Sep 2012 16:26:19 +0000 (16:26 +0000)
PR lto/54312
* lto.c (uniquify_nodes): Remove quadratic loop checking if the
type is variant leader.

From-SVN: r191228

gcc/lto/ChangeLog
gcc/lto/lto.c

index fdbf896b1cb8dc3db103258734e0f81c86467df4..85d59b23faf431125565c834537b3ffe76385c27 100644 (file)
@@ -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>
 
        * lto.c (enum gtc_mode): Remove.
index e6b63550ff7fce3e8e497a067c9152b8428813ff..c87ad6cfb06407c8f7e4a27b91ad66ef3ee62793 100644 (file)
@@ -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));