http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54146
--- Comment #25 from Steven Bosscher <steven at gcc dot gnu.org> 2012-08-06 22:42:12 UTC --- (In reply to comment #21) > The tree loop optimizers spend 285s out of 1360s total compile time (with my > flatten hack and ifcvt patch applied) in compute_global_livein. That's 21% of > the total compile time. Hmm, I've underestimated this problem. It's not a simple matter of speeding up compute_global_livein with a few caches. I've collected some statistics: * The largest function has 408254 basic blocks * The largest number of blocks visited in compute_global_livein is 185939 * compute_global_livein looked at 148056 edges to visit those blocks * The maximum size of the work list was only 6419 185939 is the number of basic blocks that end up in livein. That is a bitmap, so most time is spent in traversing bitmap linked lists. Perhaps this can be fixed with a fibheap, which may improve the access pattern on the livein bitmap.