------- Comment #18 from steven at gcc dot gnu dot org 2010-01-28 23:22 ------- Function that seems to cost the most time is add_functions(), which is one big basic block of ~7500 insns (~500 of them call insns).
List scheduling is quadratic in the number of insns per basic block. I don't know the scheduler very well, but I would expect GCC has some kind of moving window to limit the number of insns we consider for scheduling within a basic block. If so, then this is broken now. That doesn't explain why only ARM seems to be hit by this, though. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41399