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: [PATCH] Fix size & type for cold partition names (hot-cold function partitioning)


The new patch bootstraps fine on x86_64-apple-darwin14.

On Wed, Apr 29, 2015 at 5:22 PM, Caroline Tice <cmtice@google.com> wrote:
> Here is a new patch to update the cold name partition so that it will
> only be treated like a function name and be given a size on the
> architectures that specifically define macros for such.
>
> I also updated the test case to try to only test on the appropriate
> architectures.  I am not sure I got the target triples correct for
> this, so I would appreciate some extra attention to that in the
> review.  I have tested this new patch on my workstation and it works
> as intended.  I am in the process of bootstrapping with the new patch.
> Assuming that the bootstrap passes, is this ok to commit?
>
> -- Caroline Tice
> cmtice@google.com
>
> ChangeLog (gcc):
>
> 2015-04-29  Caroline Tice  <cmtice@google.com>
>
>         PR 65929
>         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
>         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
>         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
>         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
>         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
>         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
>
> ChangeLog (testsuite):
>
> 2015-04-29  Caroline Tice  <cmtice@google.com>
>
>        PR  65929
>         * gcc.dg/tree-prof/cold_partition_label.c:  Only check for cold
>         partition size on certain targets.
>
>
>
>
>
> On Wed, Apr 29, 2015 at 11:59 AM, Caroline Tice <cmtice@google.com> wrote:
>> Thank you; I will work with your suggestions and try to get a new
>> patch done soon.
>>
>> -- Caroline Tice
>> cmtice@google.com
>>
>>
>> On Wed, Apr 29, 2015 at 11:34 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>> On Wed, Apr 29, 2015 at 7:47 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>>> On Wed, Apr 29, 2015 at 7:38 PM, Caroline Tice <cmtice@google.com> wrote:
>>>>> The attached patch can revert the previous patch, if that is the way
>>>>> we should proceed on this.  If you want me to apply the reversion,
>>>>> please let me know.
>>>>>
>>>>> I would be happy to fix to the problem, rather than just reverting the
>>>>> patch, but I do not have expertise in assembly language on other
>>>>> platforms, so I would need some help, if anyone would be interested in
>>>>> helping me?
>>>>
>>>> How about adding ASM_DECLARE_COLD_FUNCTION_NAME and
>>>> ASM_DECLARE_COLD_FUNCTION_SIZE? If these are defined, they can be used
>>>> instead, and targets are free to define them in any way.
>>>
>>> Something like the attached prototype RFC patch. Using this patch,
>>> readelf -sW returns:
>>>
>>> Symbol table '.symtab' contains 18 entries:
>>>    Num:    Value          Size Type    Bind   Vis      Ndx Name
>>>      0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
>>>      1: 0000000000000000     0 SECTION LOCAL  DEFAULT    1
>>>      2: 0000000000000000     0 SECTION LOCAL  DEFAULT    3
>>>      3: 0000000000000000     0 SECTION LOCAL  DEFAULT    4
>>>      4: 0000000000000000     0 SECTION LOCAL  DEFAULT    5
>>>      5: 0000000000000000     0 SECTION LOCAL  DEFAULT    6
>>>      6: 0000000000000000     0 SECTION LOCAL  DEFAULT    8
>>>      7: 0000000000000000     8 FUNC    LOCAL  DEFAULT    6 main.cold.0
>>>      8: 0000000000000000     0 SECTION LOCAL  DEFAULT   10
>>>      9: 0000000000000000     0 SECTION LOCAL  DEFAULT   13
>>>     10: 0000000000000000     0 SECTION LOCAL  DEFAULT   12
>>>     11: 0000000000000000   312 FUNC    GLOBAL DEFAULT [<other>: 88]     8 main
>>>     12: 0000000000000008   160 OBJECT  GLOBAL DEFAULT  COM buf
>>>     13: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND memset
>>>     14: 0000000000000000    44 FUNC    GLOBAL DEFAULT [<other>: 88]     1 sub2
>>>     15: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND strcmp
>>>     16: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND exit
>>>     17: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND abort
>>>
>>> Uros.


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