On Wed, Jan 29, 2014 at 11:02:05AM +0100, Jakub Jelinek wrote:
> So, most of the time seems to be spent in cselib.c remove_useless_values
> (both from Ctrl-C in gdb profiling, and callgrind).  For callgrind I've
> actually built 64-bit cc1plus with --enable-checking=release, and still 
> compiled
> the same --enable-checking=yes,rtl -m32 -O2 -g insn-recog.c, the build then
> took just 14 minutes instead of 60 minutes, and in that case only about 30%
> of compile time has been spent in var-tracking and 20% of compile time
> in remove_useless_values in particular.

Ugh, actually it seems I've screwed up my testing, the
--enable-checking=release numbers above and also the callgrind were
mistakenly from -m64 -O2 -g insn-recog.c compilation.
If I use 64-bit --enable-checking=release compiler to compile the
32-bit insn-recog.c with yes,rtl checking in the preprocessed source
(-m32 -O2 -g), then it takes:
real    62m43.754s
user    62m11.885s
sys     0m11.894s
to compile it, so this isn't really about the RTL checking being actually
slow in the prev-gcc compiler, but just by RTL checking resulting in too
many basic blocks and too many values in insn-recog.c sources, which
increases the severity.  Not going to start callgrind now on something that
takes one hour without emulation though, that would be more than 24 hours.

        Jakub

Reply via email to