http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54312
Bug #: 54312 Summary: uniquify_nodes takes 12% of Mozilla LTO build Classification: Unclassified Product: gcc Version: lto Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: hubi...@gcc.gnu.org uniquify_nodes has quadratic loop removing types from variant lists: /* Remove us from our main variant list if we are not the variant leader. */ if (TYPE_MAIN_VARIANT (t) != t) { 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; } this consume a lot of time building Mozilla (and was introduced by Michael's patch cleaning up the stream in process). Can't we do a bit better here? (this was introduced in 4.7) Honza