------- Comment #10 from rguenth at gcc dot gnu dot org 2007-04-03 13:50 ------- At least all the attr_list stuff is O(N) as it uses a linked list for
static attrs attrs_list_member (attrs list, tree decl, HOST_WIDE_INT offset) { for (; list; list = list->next) if (list->decl == decl && list->offset == offset) return list; return NULL; } static void attrs_list_union (attrs *dstp, attrs src) { for (; src; src = src->next) { if (!attrs_list_member (*dstp, src->decl, src->offset)) attrs_list_insert (dstp, src->decl, src->offset, src->loc); } } (thats quadratic already, ugh) it's a map of <decl, offset> mapping to a rtx location. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31412