This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Should --enable-checking=yes,rtl work on 32-bit hosts?
- From: Daniel Santos <daniel dot santos at pobox dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Tue, 15 Aug 2017 19:43:51 -0500
- Subject: Re: Should --enable-checking=yes,rtl work on 32-bit hosts?
- Authentication-results: sourceware.org; auth=none
- References: <CAMe9rOqzi6KfKC6KA72aOp3f7k6mncm=i1Nt1gTzPdLrHyxETw@mail.gmail.com> <CAFiYyc3+3xMcB4z+qzgP7ByEpphAhfj6Xr4RLYjd=J4ZO8=eaw@mail.gmail.com>
On 08/15/2017 06:18 AM, Richard Biener wrote:
> On Mon, Aug 14, 2017 at 5:23 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> For GCC 8, when --enable-checking=yes,rtl is used with x32 GCC,
>> I got
>>
>> cc1plus: out of memory allocating 56137200 bytes after a total of
>> 3139436544 bytes
>> make[5]: *** [Makefile:1104: insn-extract.o] Error 1
>> make[5]: *** Waiting for unfinished jobs....
>>
>> gcc-7-branch is OK. Is this expected?
> I suppose not. Who allocates all the memory?
>
> Richard.
Well I didn't dig into it too deeply, but below is a backtrace just
prior to the error. I'm not at all intimate with gcc's memory
management, if gcc keeps track of how much each component has allocated.
(gdb) bt
#0 __GI___libc_malloc (bytes=56137200) at malloc.c:2905
#1 0x025bc8dc in xmalloc (size=56137200) at /home/daniel/proj/sys/gcc/head/libiberty/xmalloc.c:147
#2 0x0124ffa7 in (anonymous namespace)::pass_cprop_hardreg::execute (this=0x32b8e50, fun=0xd359d270) at /home/daniel/proj/sys/gcc/head/gcc/regcprop.c:1272
#3 0x011c9f23 in execute_one_pass (pass=<opt_pass* 0x32b8e50 "cprop_hardreg"(299)>) at /home/daniel/proj/sys/gcc/head/gcc/passes.c:2495
#4 0x011ca2ac in execute_pass_list_1 (pass=<opt_pass* 0x32b8e50 "cprop_hardreg"(299)>) at /home/daniel/proj/sys/gcc/head/gcc/passes.c:2584
#5 0x011ca2de in execute_pass_list_1 (pass=<opt_pass* 0x32b8a50 "*all-postreload"(-1)>) at /home/daniel/proj/sys/gcc/head/gcc/passes.c:2585
#6 0x011ca2de in execute_pass_list_1 (pass=<opt_pass* 0x32b7e50 "*rest_of_compilation"(-1)>) at /home/daniel/proj/sys/gcc/head/gcc/passes.c:2585
#7 0x011ca340 in execute_pass_list (fn=0xd359d270, pass=<opt_pass* 0x32b57c0 "fixup_cfg"(94)>) at /home/daniel/proj/sys/gcc/head/gcc/passes.c:2595
#8 0x00cb317b in cgraph_node::expand (this=<cgraph_node* 0xd359ce58 "insn_extract">) at /home/daniel/proj/sys/gcc/head/gcc/cgraphunit.c:2054 #9 0x00cb384b in expand_all_functions () at /home/daniel/proj/sys/gcc/head/gcc/cgraphunit.c:2190
#10 0x00cb4469 in symbol_table::compile (this=0xf64f60d8) at /home/daniel/proj/sys/gcc/head/gcc/cgraphunit.c:2542
#11 0x00cb46d4 in symbol_table::finalize_compilation_unit (this=0xf64f60d8) at /home/daniel/proj/sys/gcc/head/gcc/cgraphunit.c:2631
#12 0x013c7412 in compile_file () at /home/daniel/proj/sys/gcc/head/gcc/toplev.c:496
#13 0x013c9c51 in do_compile () at /home/daniel/proj/sys/gcc/head/gcc/toplev.c:2037
#14 0x013c9f76 in toplev::main (this=0xffffcb20, argc=77, argv=0xffffcc14) at /home/daniel/proj/sys/gcc/head/gcc/toplev.c:2171
#15 0x024fd468 in main (argc=77, argv=0xffffcc14) at /home/daniel/proj/sys/gcc/head/gcc/main.c:39
Thanks,
Daniel