diff options
author | Jan Hubicka <jh@suse.cz> | 2012-09-12 18:26:19 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2012-09-12 16:26:19 +0000 |
commit | b5c7cdfb0a1331bbed96c6e1c4f7e832fe070100 (patch) | |
tree | 3c32d98bbad6bcd8730d3f989890132168b65b84 /gcc | |
parent | ed56b7f958ffab960ccad757c510d718bc85b0b6 (diff) | |
download | gcc-b5c7cdfb0a1331bbed96c6e1c4f7e832fe070100.zip gcc-b5c7cdfb0a1331bbed96c6e1c4f7e832fe070100.tar.gz gcc-b5c7cdfb0a1331bbed96c6e1c4f7e832fe070100.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/lto/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto/lto.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index fdbf896..85d59b2 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -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. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index e6b6355..c87ad6c 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)); |