public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/99782] New: Compile time and memory hog w/ __int128 on aarch64
@ 2021-03-26  3:54 asolokha at gmx dot com
  2021-03-26  8:27 ` [Bug target/99782] " marxin at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: asolokha at gmx dot com @ 2021-03-26  3:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99782

            Bug ID: 99782
           Summary: Compile time and memory hog w/ __int128 on aarch64
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: compile-time-hog, memory-hog
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---
            Target: aarch64-linux-gnu

gcc-11.0.1-alpha20210321 snapshot (g:fc24ea2374259d401a46ce3526688b7e79d4cc13)
takes indefinite time and consumes inordinate memory when compiling the
following testcase w/ -O3:

int hb;

void
w4 (__int128 uv, int ng)
{
  int vh;

  for (vh = 0; vh < 14; ++vh)
    {
      ++ng;
      hb = (hb == uv) && ng;
    }
}

% timeout 10 aarch64-linux-gnu-gcc-11.0.1 -O3 -c nujte7ga.c
zsh: exit 124   timeout 10 aarch64-linux-gnu-gcc-11.0.1 -O3 -c nujte7ga.c

(gdb) where
#0  0x00007ffff78b2afa in memset () from /lib64/libc.so.6
#1  0x00000000009b5a48 in memset (__len=<optimized out>, __ch=175,
__dest=0x7ffe8239c000) at /usr/include/bits/string_fortified.h:56
#2  ggc_internal_alloc (size=size@entry=402653184, f=f@entry=0x0, s=s@entry=0,
n=n@entry=1)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ggc-page.c:1400
#3  0x0000000000bbd629 in ggc_internal_alloc (s=402653184)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ggc.h:130
#4  ggc_realloc (x=0x7fff3c79e000, size=size@entry=402653184)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ggc-common.c:152
#5  0x0000000000b03fa9 in emit_status::ensure_regno_capacity
(this=this@entry=0x243c920 <x_rtl+64>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/emit-rtl.c:1229
#6  0x0000000000b04046 in gen_reg_rtx (mode=mode@entry=E_DImode)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/emit-rtl.c:1202
#7  0x0000000000b1bd07 in force_reg (x=0x7ffff750f9b0, mode=E_DImode)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/explow.c:686
#8  force_reg (mode=E_DImode, x=0x7ffff750f9b0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/explow.c:666
#9  0x0000000000b1d9ab in use_anchored_address (x=0x7ffea54bade0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/explow.c:606
#10 use_anchored_address (x=0x7ffea54bade0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/explow.c:559
#11 0x0000000000b40982 in expand_expr_real_1 (exp=<optimized out>,
target=<optimized out>, tmode=E_TImode, modifier=EXPAND_NORMAL,
    alt_rtl=0x0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:10301
#12 0x0000000000b411d4 in expand_expr_real_1 (exp=0x7ffff74ff000,
target=<optimized out>, tmode=E_TImode, modifier=EXPAND_NORMAL,
    alt_rtl=0x0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/gimple.h:2597
#13 0x0000000000b3a764 in expand_expr (modifier=EXPAND_NORMAL, mode=E_TImode,
target=0x0, exp=0x7ffff74ff000)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.h:282
#14 expand_expr_real_2 (ops=<optimized out>, target=<optimized out>,
tmode=<optimized out>, modifier=EXPAND_NORMAL)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:8802
#15 0x0000000000b41bdb in expand_expr_real_1 (exp=0x7ffff74ff438,
target=<optimized out>, tmode=E_VOIDmode, modifier=EXPAND_NORMAL,
    alt_rtl=0x0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:10210
#16 0x0000000000b4ba55 in expand_expr (modifier=EXPAND_NORMAL, mode=E_VOIDmode,
target=<optimized out>, exp=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.h:282
#17 expand_operands (exp0=exp0@entry=0x7ffff74ff438,
exp1=exp1@entry=0x7ffff760cd38, target=target@entry=0x0,
    op0=op0@entry=0x7ffffffef370, op1=op1@entry=0x7ffffffef378,
modifier=modifier@entry=EXPAND_NORMAL)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:8110
#18 0x00000000012996e0 in aarch64_gen_ccmp_next
(prep_seq=prep_seq@entry=0x7ffffffef558, gen_seq=gen_seq@entry=0x7ffffffef560,
    prev=prev@entry=0x7ffea54badc8, cmp_code=86, treeop0=0x7ffff74ff438,
treeop1=0x7ffff760cd38, bit_code=66)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/config/aarch64/aarch64.c:21990
#19 0x0000000001937fb5 in expand_ccmp_next (op=op@entry=0x7ffff74ff3a8,
code=code@entry=BIT_AND_EXPR, prev=prev@entry=0x7ffea54badc8,
    prep_seq=0x7ffffffef558, gen_seq=0x7ffffffef560)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ccmp.c:172
#20 0x00000000019383b8 in expand_ccmp_expr_1 (g=<optimized out>,
prep_seq=0x7ffffffef5c8, gen_seq=0x7ffffffef5d0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ccmp.c:243
#21 0x00000000019384d5 in expand_ccmp_expr (g=g@entry=0x7ffff7604420,
mode=mode@entry=E_QImode)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ccmp.c:295
#22 0x0000000000b4113c in expand_expr_real_1 (exp=0x7ffff74ff360,
target=<optimized out>, tmode=E_TImode, modifier=EXPAND_NORMAL,
    alt_rtl=0x0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:10201
#23 0x0000000000b3a764 in expand_expr (modifier=EXPAND_NORMAL, mode=E_TImode,
target=0x0, exp=0x7ffff74ff360)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.h:282
#24 expand_expr_real_2 (ops=<optimized out>, target=<optimized out>,
tmode=<optimized out>, modifier=EXPAND_NORMAL)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:8802
#25 0x0000000000b41bdb in expand_expr_real_1 (exp=0x7ffff760ca68,
target=<optimized out>, tmode=E_VOIDmode, modifier=EXPAND_NORMAL,
    alt_rtl=0x0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:10210
#26 0x0000000000b4ba55 in expand_expr (modifier=EXPAND_NORMAL, mode=E_VOIDmode,
target=<optimized out>, exp=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.h:282
#27 expand_operands (exp0=exp0@entry=0x7ffff760ca68,
exp1=exp1@entry=0x7ffff760cd38, target=target@entry=0x0,
    op0=op0@entry=0x7fffffff00d0, op1=op1@entry=0x7fffffff00d8,
modifier=modifier@entry=EXPAND_NORMAL)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:8110
#28 0x0000000001299b0d in aarch64_gen_ccmp_first (prep_seq=0x7fffffff0208,
gen_seq=0x7fffffff0210, code=86, treeop0=0x7ffff760ca68,
    treeop1=0x7ffff760cd38)

<…>

(gdb) where -25
#155 0x0000000001937fb5 in expand_ccmp_next (op=op@entry=0x7ffff760cb40,
code=code@entry=BIT_AND_EXPR, prev=prev@entry=0x7ffeee9b5e88,
    prep_seq=0x7fffffffc948, gen_seq=0x7fffffffc950)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ccmp.c:172
#156 0x00000000019383b8 in expand_ccmp_expr_1 (g=<optimized out>,
prep_seq=0x7fffffffc9b8, gen_seq=0x7fffffffc9c0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ccmp.c:243
#157 0x00000000019384d5 in expand_ccmp_expr (g=g@entry=0x7ffff7604268,
mode=mode@entry=E_QImode)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/ccmp.c:295
#158 0x0000000000b4113c in expand_expr_real_1 (exp=0x7ffff760caf8,
target=<optimized out>, tmode=E_SImode, modifier=EXPAND_NORMAL,
    alt_rtl=0x0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:10201
#159 0x0000000000b3a764 in expand_expr (modifier=EXPAND_NORMAL, mode=E_SImode,
target=0x0, exp=0x7ffff760caf8)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.h:282
#160 expand_expr_real_2 (ops=<optimized out>, target=<optimized out>,
tmode=<optimized out>, modifier=EXPAND_NORMAL)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:8802
#161 0x0000000000b41bdb in expand_expr_real_1 (exp=0x7ffff74ff048,
target=<optimized out>, tmode=E_SImode, modifier=EXPAND_NORMAL,
    alt_rtl=0x7fffffffd4b0, inner_reference_p=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:10210
#162 0x0000000000b4ca46 in store_expr (exp=0x7ffff74ff048,
target=0x7ffff75122e8, call_param_p=<optimized out>,
    nontemporal=<optimized out>, reverse=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:5886
#163 0x0000000000b4ed61 in expand_assignment (to=0x7ffff7ffb2d0,
from=0x7ffff74ff048, nontemporal=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/expr.c:5622
#164 0x0000000000a15108 in expand_gimple_stmt_1 (stmt=0x7ffff74c8d20)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cfgexpand.c:3910
#165 expand_gimple_stmt (stmt=0x7ffff74c8d20)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cfgexpand.c:4008
#166 0x0000000000a1b41b in expand_gimple_basic_block (bb=<optimized out>,
disable_tail_calls=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cfgexpand.c:6045
#167 0x0000000000a1cfc0 in (anonymous namespace)::pass_expand::execute
(this=<optimized out>, fun=0x7ffff74f1000)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cfgexpand.c:6729
#168 0x0000000000df80d8 in execute_one_pass (pass=0x25ca2a0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/passes.c:2567
#169 0x0000000000df8ac3 in execute_pass_list_1 (pass=0x25ca2a0)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/passes.c:2656
#170 0x0000000000df8b02 in execute_pass_list (fn=0x7ffff74f1000,
pass=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/passes.c:2667
#171 0x0000000000a550e5 in cgraph_node::expand (this=0x7ffff74f2000)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/context.h:48
#172 0x0000000000a5675f in expand_all_functions ()
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cgraphunit.c:1998
#173 symbol_table::compile (this=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cgraphunit.c:2362
#174 symbol_table::compile (this=<optimized out>)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cgraphunit.c:2273
#175 0x0000000000a594a4 in symbol_table::finalize_compilation_unit
(this=0x7ffff7605000)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/cgraphunit.c:2543
#176 0x0000000000ede631 in compile_file ()
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/toplev.c:482
#177 0x00000000008907a3 in do_compile ()
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/toplev.c:2201
#178 toplev::main (this=this@entry=0x7fffffffdb36, argc=<optimized out>,
argc@entry=13, argv=<optimized out>,
    argv@entry=0x7fffffffdc48)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/toplev.c:2340
#179 0x0000000000893331 in main (argc=13, argv=0x7fffffffdc48)
    at
/var/tmp/portage/cross-aarch64-linux-gnu/gcc-11.0.1_alpha20210321/work/gcc-11-20210321/gcc/main.c:39

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/99782] Compile time and memory hog w/ __int128 on aarch64
  2021-03-26  3:54 [Bug target/99782] New: Compile time and memory hog w/ __int128 on aarch64 asolokha at gmx dot com
@ 2021-03-26  8:27 ` marxin at gcc dot gnu.org
  2024-04-14  2:32 ` [Bug target/99782] [11/12/13/14 Regression] " pinskia at gcc dot gnu.org
  2024-04-14  2:34 ` [Bug middle-end/99782] " pinskia at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-03-26  8:27 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99782

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marxin at gcc dot gnu.org
   Last reconfirmed|                            |2021-03-26
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug target/99782] [11/12/13/14 Regression] Compile time and memory hog w/ __int128 on aarch64
  2021-03-26  3:54 [Bug target/99782] New: Compile time and memory hog w/ __int128 on aarch64 asolokha at gmx dot com
  2021-03-26  8:27 ` [Bug target/99782] " marxin at gcc dot gnu.org
@ 2024-04-14  2:32 ` pinskia at gcc dot gnu.org
  2024-04-14  2:34 ` [Bug middle-end/99782] " pinskia at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-14  2:32 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99782

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |11.5
                 CC|                            |pinskia at gcc dot gnu.org
            Summary|Compile time and memory hog |[11/12/13/14 Regression]
                   |w/ __int128 on aarch64      |Compile time and memory hog
                   |                            |w/ __int128 on aarch64

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug middle-end/99782] [11/12/13/14 Regression] Compile time and memory hog w/ __int128 on aarch64
  2021-03-26  3:54 [Bug target/99782] New: Compile time and memory hog w/ __int128 on aarch64 asolokha at gmx dot com
  2021-03-26  8:27 ` [Bug target/99782] " marxin at gcc dot gnu.org
  2024-04-14  2:32 ` [Bug target/99782] [11/12/13/14 Regression] " pinskia at gcc dot gnu.org
@ 2024-04-14  2:34 ` pinskia at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-14  2:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99782

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |middle-end

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The code for ccmp generation is O(n^2) it seems. Note even though ccmp is
target specific it is the middle-end part (which aarch64 might be the only one
that uses it right now) that is the issue.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-14  2:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-26  3:54 [Bug target/99782] New: Compile time and memory hog w/ __int128 on aarch64 asolokha at gmx dot com
2021-03-26  8:27 ` [Bug target/99782] " marxin at gcc dot gnu.org
2024-04-14  2:32 ` [Bug target/99782] [11/12/13/14 Regression] " pinskia at gcc dot gnu.org
2024-04-14  2:34 ` [Bug middle-end/99782] " pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).