This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/56113] out of memory when compiling a function with many goto labels (50k > )
- From: "steven at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 27 Jan 2013 13:27:04 +0000
- Subject: [Bug middle-end/56113] out of memory when compiling a function with many goto labels (50k > )
- Auto-submitted: auto-generated
- References: <bug-56113-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56113
Steven Bosscher <steven at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |alias
--- Comment #6 from Steven Bosscher <steven at gcc dot gnu.org> 2013-01-27 13:27:04 UTC ---
I've collected the ratios of the --enable-gather-detailed-memory-stats
output for bitmaps, for test cases with n=1000 and n=8000.
Worst memory non-linear behavior is in the following functions:
Bitmap Alloc Peak Leak
------------------------------------------------------------------------
tree-ssa-loop-manip.c:248 (compute_live_l 75.49 7.87 0.00
cfganal.c:1167 (compute_idf) 72.62 7.69 0.00
tree-ssa-structalias.c:2104 (label_visit) 60.73 60.73 60.73
df-problems.c:554 (df_rd_transfer_functio 46.35 6.90 0.00
df-problems.c:233 (df_rd_alloc) 18.57 18.57 18.57
df-problems.c:525 (df_rd_transfer_functio 12.97 9.55 9.60
df-problems.c:2113 (df_chain_create_bb) 11.62 8.43 0.00
df-problems.c:413 (df_rd_local_compute) 9.91 1.00 0.00
df-problems.c:230 (df_rd_alloc) 9.61 9.61 9.61
df-problems.c:232 (df_rd_alloc) 9.61 9.61 9.61
The only one of the above there the amount of memory allocated is really
significant, is tree-ssa-structalias.c:2104 (label_visit):
n= 1000 -> 27055768 bytes allocated (of total 111411120, 24%)
n= 2000 -> 104669648 bytes allocated (of total 293048432. 36%)
n= 4000 -> 415898848 bytes allocated (of total 768746792, 54%)
n= 8000 -> 1642995248 bytes allocated (of total 2556626064, 64%)
n=16000 -> 6549989248 bytes allocated (of total 8780662936, 75%)