http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54146
--- Comment #24 from Steven Bosscher <steven at gcc dot gnu.org> 2012-08-06 20:55:37 UTC --- (In reply to comment #23) > Created attachment 27953 [details] Needs this extra bit: diff -u ira.c ira.c --- ira.c (working copy) +++ ira.c (working copy) @@ -3539,7 +3539,8 @@ *p = NULL; for (i = 0; i < (unsigned int) max_regno; i++) - sbitmap_free (live_subregs[i]); + if (live_subregs[i] != NULL) + sbitmap_free (live_subregs[i]); free (live_subregs); BITMAP_FREE (live_subregs_used); BITMAP_FREE (live_relevant_regs); With that, reload time goes down to ~14s, down from ~124s.