This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Reduce size of df_ref
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: zadeck at naturalbridge dot com, gcc-patches at gcc dot gnu dot org
- Date: Thu, 11 Sep 2008 17:31:11 +0200
- Subject: Re: Reduce size of df_ref
- References: <20080911145059.GQ3195@kam.mff.cuni.cz>
>
> Hi,
> looking at top memory consumers at -O0 compilation of PR middle-end/37448
> Allocpools:
> allocnos 434 45686480 42628176 0
> df_scan_ref pool 868 299190624 674472576 0
> df_scan_insn pool 868 78427840 39589968 0
>
> Bitmaps:
> reload1.c:526 (new_insn_chain) 614091 36265800 36265800 36265800 0
> reload1.c:527 (new_insn_chain) 614091 33119880 33119880 33119880 1032650
>
> Vectors:
> ira-build.c:405 (initiate_allocnos) 0: 0.0% 2502640 434: 0.4%
> ira-build.c:409 (initiate_allocnos) 0: 0.0% 2502640 434: 0.4%
> final.c:958 (shorten_branches) 0: 0.0% 2562404 434: 0.4%
> ira-build.c:928 (initiate_copies) 0: 0.0% 5124072 434: 0.4%
>
> GGC
> tree-ssanames.c:141 (make_ssa_name_fn) 15898560: 3.2% 0: 0.0% 0: 0.0% 1059904: 2.1% 132488
> c-typeck.c:3216 (build_unary_op) 16098624: 3.3% 0: 0.0% 0: 0.0% 1788736: 3.6% 223592
> ggc-common.c:187 (ggc_calloc) 15786984: 3.2% 0: 0.0% 2502848:18.2% 24824: 0.0% 4343
> gimplify.c:522 (create_tmp_var_raw) 21675192: 4.4% 0: 0.0% 0: 0.0% 1032152: 2.1% 129019
> gimple.c:287 (gimple_build_call_1) 22671720: 4.6% 0: 0.0% 0: 0.0% 1111272: 2.2% 166477
> tree-inline.c:3591 (copy_tree_r) 22805864: 4.6% 0: 0.0% 0: 0.0% 1378024: 2.8% 288420
> lists.c:143 (alloc_EXPR_LIST) 28357080: 5.8% 0: 0.0% 0: 0.0% 5671416:11.4% 708927
> cgraph.c:643 (cgraph_create_edge) 31961856: 6.5% 0: 0.0% 0: 0.0% 0: 0.0% 332936
> emit-rtl.c:426 (gen_raw_REG) 33121984: 6.7% 0: 0.0% 38656: 0.3% 0: 0.0% 1036270
> emit-rtl.c:3343 (make_insn_raw) 36543408: 7.4% 0: 0.0% 0: 0.0% 3322128: 6.7% 415266
The patch is wrong, it does not work for virtual refs.
However there seems to be problem that we seem to have allocated about
22 refs at once for every instruction.
Honza