This is the mail archive of the gcc-patches@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: [RFC][PATCH][X86_64] Eliminate PLT stubs for specified external functions via -fno-plt=


On Thu, Jun 4, 2015 at 10:05 AM, Richard Henderson <rth@redhat.com> wrote:
> On 06/04/2015 09:54 AM, Sriraman Tallam wrote:
>> +              DECL_ATTRIBUTES (SYMBOL_REF_DECL (XEXP(fnaddr, 0)))))
>
> Spacing.
>
>>       {
>>         use_reg (&use, gen_rtx_REG (Pmode, REAL_PIC_OFFSET_TABLE_REGNUM));
>>         if (ix86_use_pseudo_pic_reg ())
>> @@ -25598,7 +25603,31 @@ ix86_expand_call (rtx retval, rtx fnaddr, rtx call
>>
>>    return call;
>>  }
>> +/* Return true if the function being called was marked with attribute "noplt"
>
> Vertical spacing.
>
>> +      || !TARGET_64BIT || TARGET_MACHO|| TARGET_SEH || TARGET_PECOFF
>
> Spacing.
>
> Otherwise ok.

Made these changes and committed the patch.  I had to add one more
check here to check if decl is not null before looking at its
attributes.  It was causing a seg fault during boot-strap with libgcc
build.

+  && (SYMBOL_REF_DECL ((XEXP (fnaddr, 0))) == NULL_TREE     // This
line was added after the patch was approved.
+      || !lookup_attribute ("noplt",
+     DECL_ATTRIBUTES (SYMBOL_REF_DECL (XEXP (fnaddr, 0))))))

Thanks
Sri

>
>
> r~


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