------- Comment #5 from sje at cup dot hp dot com 2007-05-09 22:05 ------- It looks like the slowdown in limits-fndefn.c is different than the slowdown for limits-fnargs.c. The compilation time in limits-fndefn.c is spent in push_to_sequence. The problem is that each (32 bit) argument is generating a conversion operand (to 64 bits) and these conversions are getting put in all->conversion_insns. Then we call push_to_sequence with all->conversion_insns and each time we call it the list of instructions is longer and push_to_sequence does a walk through the entire list each time it is called, getting slower and slower and slower.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31850