Il 02/10/2012 09:28, Steven Bosscher ha scritto: >> My experience shows that these lists are usually 1-2 elements. Although in >> > this case, there are pseudos with huge number elements (hundreeds). I >> > tried >> > -fweb for this tests because it can decrease the number elements but GCC (I >> > don't know what pass) scales even worse: after 20 min of waiting and when >> > virt memory achieved 20GB I stoped it. > Ouch :-) > > The webizer itself never even runs, the compiler blows up somewhere > during the df_analyze call from web_main. The issue here is probably > in the DF_UD_CHAIN problem or in the DF_RD problem.
/me is glad to have fixed fwprop when his GCC contribution time was more than 1-2 days per year... Unfortunately, the fwprop solution (actually a rewrite) was very specific to the problem and cannot be reused in other parts of the compiler. I guess here it is where we could experiment with region-based optimization. If a loop (including the parent dummy loop) is too big, ignore it and only do LRS on smaller loops inside it. Reaching definitions is insanely expensive on an entire function, but works well on smaller loops. Perhaps something similar could be applied also to IRA/LRA. Paolo