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]
Other format: [Raw text]

Re: Breaking up the 'parse' time into 'parse/bison' and 'parse/other'


> The report you referred to about the parser - did it quantify the number of
> cache misses and the resulting %impact?

Yes, the access to the LALR tables of bison was in the top 5 for data cache
misses on an Athlon with 256K cache. My theory was that the optimization
passes in rest_of_compilation always need more than 256K scratch memory
and push out all the parser state, so when the next function is parsed 
the parser has to fetch its state tables from memory again and eat the
cache miss latencies. 

If you have a linux/x86 box around you can look at it yourself - just install
valgrind from http://developer.kde.org/~sewardj/ and run cc1 with some
bigger files in cachegrind. valgrind doesn't need any special kernel versions,
it is purely a software solution.

-Andi


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