This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: flow speed regression [Re: How long should -O1 compiles take?]


Richard:

Thanks for your suggestion.  With your flow.c change, flow is no longer
a problem---with your fix, the two flow passes in gcc-2.96 take less
time than the one flow pass in egcs-1.1.2.  The new register allocator
is still a problem (40 times as long as the old register allocator).

There is a Scheme->C code-generation option to use a case statement
rather than computed goto's---this makes the generated code run 20%
slower to 4 times slower (depending on the application), but it does cut
about 30 seconds from the compile time for the flow passes in the example.
(And last fall, I did use the case statement approach---the computed goto
approach wasn't available then.)  But this doesn't reduce the compile
time significantly in 2.96, because the register allocation still takes
40 times as long in gcc-2.96 as in egcs-1.1.2.

To summarize:  With your flow.c change, flow is not a problem.  Before and
after your flow.c change, global-alloc is a problem, and using a case
statement rather than the computed goto's doesn't change that problem
at all.

Brad


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]