GNU C++ 4.0.1/4.1.0 cache misses on MICO sources.

Mark Mitchell mark@codesourcery.com
Mon May 23 20:12:00 GMT 2005


Karel Gardas wrote:
> On Mon, 23 May 2005, Mark Mitchell wrote:
> 
>> Mike Stump wrote:
>>
>>> On May 17, 2005, at 3:16 PM, Karel Gardas wrote:
>>>
>>>> 1) the most expensive seems to be comptypes -- at least from data L2
>>>>    refill point of view (~17%)
>>>>
>>>> 2) comptypes is also the most CPU intensive operation since the most
>>>>    of time is spent there
>>>
>>>
>>>
>>> I think comptypes can be sped up by canonicalizing types better, and  
>>> also adding a conservative hash and checking it first.
>>
>>
>> We've researched this in detail.
>>
>> Speeding up comptypes can best be done by calling it less often.  One 
>> of the primary uses is the template machinery, which works very hard 
>> to work out whether it already has an existing specialization.  The 
>> first step is to insert canonicalizations and other speedups there; 
>> that would reduce the number of calls to comptypes dramatically.  
>> There are also places in the front end that make redundant calls to 
>> comptypes; for example, during declaration processing we sometimes 
>> check whether or not two declarations match more than once.
>>
>> The changes you suggest might still be helpful, but I'd prefer to see 
>> the bigger algorithms fixed first, as those changes will have 
>> secondary benefits beyond comptypes as well.
> 
> 
> Mark,
> 
> shall I put some RFE to bugzilla to have it recordered somewhere, or is 
> this already on your company or team TODO list?

It's certainly well-known here -- but that's not to say it shouldn't go 
in some nice FSF-ish place as well in case somebody else wants to work 
on it.

-- 
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com
(916) 791-8304



More information about the Gcc mailing list