Cgraph thunk reorg

David Edelsohn dje.gcc@gmail.com
Wed May 25 14:55:00 GMT 2011


Honza,

After we debugged this offline, I assume that you applied a version of
the patch to trunk?

Thanks, David

On Fri, May 13, 2011 at 3:14 PM, David Edelsohn <dje.gcc@gmail.com> wrote:
> Honza,
>
> Testing is not complete, but testcases that failed with DECL_ONE_ONLY
> error now are passing with the later version of the patch you sent.
>
> - David
>
> On Fri, May 13, 2011 at 10:49 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
>> Hi,
>> please also try this patch
>>
>> Index: ipa.c
>> ===================================================================
>> --- ipa.c       (revision 173723)
>> +++ ipa.c       (working copy)
>> @@ -886,6 +886,9 @@ function_and_variable_visibility (bool w
>>          while (decl_node->thunk.thunk_p)
>>            decl_node = decl_node->callees->callee;
>>
>> +          DECL_COMDAT_GROUP (node->decl) = DECL_COMDAT_GROUP (decl_node->decl);
>> +         DECL_COMDAT (node->decl) = DECL_COMDAT (decl_node->decl);
>> +
>>          /* Thunks have the same visibility as function they are attached to.
>>             For some reason C++ frontend don't seem to care. I.e. in
>>             g++.dg/torture/pr41257-2.C the thunk is not comdat while function
>> @@ -893,10 +896,8 @@ function_and_variable_visibility (bool w
>>
>>             We also need to arrange the thunk into the same comdat group as
>>             the function it reffers to.  */
>> -         if (DECL_COMDAT (decl_node->decl))
>> +         if (DECL_ONE_ONLY (decl_node->decl))
>>            {
>> -             DECL_COMDAT (node->decl) = 1;
>> -             DECL_COMDAT_GROUP (node->decl) = DECL_COMDAT_GROUP (decl_node->decl);
>>              if (!node->same_comdat_group)
>>                {
>>                  node->same_comdat_group = decl_node;
>>
>



More information about the Gcc-patches mailing list