bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gas/24165] fivefold time and memory usage since commit 3ae729d5 on


From: cvs-commit at gcc dot gnu.org
Subject: [Bug gas/24165] fivefold time and memory usage since commit 3ae729d5 on large files generated by lto
Date: Sun, 10 Feb 2019 12:36:26 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=24165

--- Comment #7 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
The master branch has been updated by H.J. Lu <address@hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=db22231044df03bbcb987496f3f29f0462b2e9ee

commit db22231044df03bbcb987496f3f29f0462b2e9ee
Author: H.J. Lu <address@hidden>
Date:   Sun Feb 10 04:34:10 2019 -0800

    gas: Pass max_bytes to TC_FRAG_INIT

    ommit 3ae729d5a4f63740ed9a778960b17c2912b0bbdd
    Author: H.J. Lu <address@hidden>
    Date:   Wed Mar 7 04:18:45 2018 -0800

        x86: Rewrite NOP generation for fill and alignment

    increased MAX_MEM_FOR_RS_ALIGN_CODE to 4095 which resulted in increase
    of assembler time and memory usage by 5 times for inputs with many
    .p2align directives, which is typical for LTO output.  This patch passes
    max_bytes to TC_FRAG_INIT so that MAX_MEM_FOR_RS_ALIGN_CODE can be set
    as needed and tracked by backend it so that HANDLE_ALIGN can check the
    maximum alignment for each rs_align_code frag.  Wall time to assemble
    the same cc1plus.s:

    before:

    423.78user 0.89system 7:05.71elapsed 99%CPU

    after:

    102.35user 0.27system 1:42.89elapsed 99%CPU

        PR gas/24165
        * frags.c (frag_var_init): Pass max_chars to TC_FRAG_INIT as
        max_bytes.
        * config/tc-aarch64.h (TC_FRAG_INIT): Add and pass max_bytes to
        aarch64_init_frag.
        * /config/tc-arm.h (TC_FRAG_INIT): And and pass max_bytes to
        arm_init_frag.
        * config/tc-avr.h (TC_FRAG_INIT): And and ignore max_bytes.
        * config/tc-ia64.h (TC_FRAG_INIT): Likewise.
        * config/tc-mmix.h (TC_FRAG_INIT): Likewise.
        * config/tc-nds32.h (TC_FRAG_INIT): Likewise.
        * config/tc-ns32k.h (TC_FRAG_INIT): Likewise.
        * config/tc-rl78.h (TC_FRAG_INIT): Likewise.
        * config/tc-rx.h (TC_FRAG_INIT): Likewise.
        * config/tc-score.h (TC_FRAG_INIT): Likewise.
        * config/tc-tic54x.h (TC_FRAG_INIT): Likewise.
        * config/tc-tic6x.h (TC_FRAG_INIT): Likewise.
        * config/tc-xtensa.h (TC_FRAG_INIT): Likewise.
        * config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Set to
        (alignment ? ((1 << alignment) - 1) : 1)
        (i386_tc_frag_data): Add max_bytes.
        (TC_FRAG_INIT): Add and track max_bytes.
        (HANDLE_ALIGN): Replace MAX_MEM_FOR_RS_ALIGN_CODE with
        fragP->tc_frag_data.max_bytes.
        * doc/internals.texi: Update TC_FRAG_TYPE with max_bytes.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]