https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83309
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- callgrind says all time is spent in lookup_field_1. I suppose CLASSTYPE_SORTED_FIELDS isn't set during parsing the structure and we likely look for duplicates here. Nathan rewrote name-lookup for GCC 8 which still sees this slowness via fields_linear_search (that name suggests what goes wrong here already). Confirmed. Note we also seem to do two lookups per field, one for the type and one for the value binding...