http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53176
--- Comment #10 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> 2012-05-02 22:32:24 UTC --- (In reply to comment #4) > Not to mention that it would be nice to avoid the possibly expensive > initialization, which increases empty source file compilation time, when it > isn't actually desirable to use it. If that's a concern though, we should do it in a general way. The initialisation that this pass does is much cheaper than other passes that are initialised in the same way. All we're doing is following the existing model. For the record: even with perf -F 100000 on an "empty" (well, "int x;") file, the new lower_subreg routines didn't show up at all. The number of calls to rtx_cost went up from 9017 to 9097. And the rtx_cost-related functions only took ~2% total. So I think we're talking about much less than 0.1% of execution time here. Compiling an empty file is so quick even on my rather old box that it's difficult to get a precise figure. (The top rtl routines in the profile were IRA and init_move_costs, which I suppose is what one would expect. So my point is that if we want to do something about this, it's more important that we do something generic that will work for those two than something ad-hoc that works only for this already-quick routine.)