[PATCH][RFC] Improve get_qualified_type linear list walk

Richard Biener rguenther@suse.de
Tue Apr 16 17:47:00 GMT 2019


On April 16, 2019 6:14:45 PM GMT+02:00, Jakub Jelinek <jakub@redhat.com> wrote:
>On Tue, Apr 16, 2019 at 04:10:11PM +0000, Michael Matz wrote:
>> I was quickly testing also with some early-outs but didn't get
>conclusive 
>> performance results (but really only superficial testing) so I'm not 
>> proposing it, like so:
>> 
>> diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
>> index 7045284..33f56f9 100644
>> --- a/gcc/cp/typeck.c
>> +++ b/gcc/cp/typeck.c
>> @@ -1508,6 +1508,10 @@ same_type_ignoring_top_level_qualifiers_p
>(tree 
>>    if (type1 == error_mark_node || type2 == error_mark_node)
>>      return false;
>>  
>> +  if (type1 == type2)
>> +    return true;
>> +  if (TYPE_MAIN_VARIANT (type1) != TYPE_MAIN_VARIANT (type2))
>> +    return false;
>
>Is this second one correct though?  Doesn't comptypes return for
>various
>cases true even if the TYPE_MAIN_VARIANT is different?

I think it is not equivalent. I thought about adding a flag to comptypes to ignore toplevel qualifiers on-the-fly. 

Richard. 


>>    type1 = cp_build_qualified_type (type1, TYPE_UNQUALIFIED);
>>    type2 = cp_build_qualified_type (type2, TYPE_UNQUALIFIED);
>
>	Jakub



More information about the Gcc-patches mailing list