This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa PATCH] Pick memory consumption low hanging fruit


On Tue, 2003-11-18 at 11:32, law@redhat.com wrote:
> In message <200311181219.41900.s.bosscher@student.tudelft.nl>, Steven Bosscher 
> writes:
> A few things stick out like a sore thumb:
> 

Hmm, yeah. I just turned on GATHER_STATISTICS so I can look too :-)

Yeah, Dom is a tree node issue :-).

Without SSA:
stmts                  71580    2297276
exprs                1279795   42305576
phi_nodes                  0          0
ssa names                  0          0
---------------------------------------
Total                4306078  144420924
---------------------------------------

Without PRE and DOM:
stmts                  75370    2418556
exprs                1629048   54715048
phi_nodes             215615   11616040
ssa names             728089   23298848
---------------------------------------
Total                5615988  192490948

without PRE (so including DOM):
stmts                  75760    2431036
exprs                2337733   80258208
phi_nodes             323388   17225448
ssa names            1048212   33542784
---------------------------------------
Total                6745718  233635736

finally, with PRE and everything.
stmts                  84988    2726332
exprs                2346101   80559152
phi_nodes             332483   17819880
ssa names            1057778   33848896
---------------------------------------
Total                6797308  236131536



SO here's a quick question, is it possible to allocate certain types of
nodes always in their own pages? SSA_NAMEs and PHI_NODEs will never see
life beyond the SSA passes, so having them in their own pages seems like
it would probably be a good thing... then the entire page could clearly
be GCd/released when we leave SSA.

I dont know how our GC/memory allocation works. Do we allocate pages of
similar size objects? ie, so all 32 byte objects come from a page of
"just" 32 byte objects, or is it mix and match?

Andrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]