This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/30089] Compiling FreeFem3d uses unreasonable amount of time and memory
- From: "dnovillo at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Dec 2006 23:50:16 -0000
- Subject: [Bug tree-optimization/30089] Compiling FreeFem3d uses unreasonable amount of time and memory
- References: <bug-30089-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from dnovillo at gcc dot gnu dot org 2006-12-13 23:50 -------
The memory problem is quite simple: We just have a *lot* of pointers and a
*lot* of addressable symbols. Here is a breakdown of what happens on the first
call to compute_may_aliases:
During the first call to compute_may_aliases:
1- Size of cc1plus is 339Mb
2- Call to compute_points_to_sets grows to 355Mb (+4.72%)
3- Call to compute_flow_insensitive_aliasing grows to 364Mb (+2.54%)
4- Call to compute_flow_sensitive_aliasing grows to 667Mb (+83.2%)
The reason for this tremendous growth is quite simple. There are 39,010 SSA
name pointers and many of them have their own points-to set, which we store in
that name's may-alias set. We grow to 667Mb in the last loop of
compute_flow_sensitive_aliasing.
One thing we could do is just not use flow-sensitive information in these
cases. If we don't set SSA_NAME_PTR_INFO, everything will default to
flow-insensitive information and things will Just Work.
Perhaps using sparse bitmaps for the may-alias sets might help with memory
consumption, but I found these bitmaps to slow down the operand scanner quite a
bit in the past. May be worth a try.
Danny, thoughts?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30089