Hi, On Wed, Jan 15, 2014 at 06:37:30PM +0100, Eric Botcazou wrote: > > I know, I'm saying it may be possible to implement an equivalent > > optimization without SSA form. > > Sure, but what would be the point of this duplication exactly? > > > I'm saying even ESRA should be able to scalarize it just fine. It just > > needs to be careful where to insert the loads from the aggregate result > > (on the single outgoing non-EH edge). > > > > Wouldn't that fix your issue? > > Very likely, yes, but there might be other passes with the same problem > before > the first EH cleanup pass (e.g. FRE, DCE, etc). > > > Early inlining. > > Are you sure? I don't see how 032t.ehcleanup1 can have any effects on > p.adb.018t.einline (unless something mysterious happens here).
We early-optimize functions in topological order so generally (except for SCCs), so when 018t.einline runs all the callees have already been early-optimized, and it is really the callees it looks at most. (But it of course prepares the function for ipa inlining analysis too since the standalone functions will be untouched.) Martin > > > > p.adb.003t.original > > > p.adb.004t.gimple > > > p.adb.005t.nested > > > p.adb.006t.omplower > > > p.adb.007t.lower > > > p.adb.009t.ehopt > > > p.adb.010t.eh > > > p.adb.011t.cfg > > > p.adb.015t.ssa > > > p.adb.017t.inline_param1 > > > p.adb.018t.einline > > > p.adb.019t.early_optimizations > > > p.adb.020t.copyrename1 > > > p.adb.021t.ccp1 > > > p.adb.022t.forwprop1 > > > p.adb.023t.ealias > > > p.adb.024t.esra > > > p.adb.025t.fre1 > > > p.adb.026t.copyprop1 > > > p.adb.027t.mergephi1 > > > p.adb.028t.cddce1 > > > p.adb.029t.eipa_sra > > > p.adb.030t.tailr1 > > > p.adb.031t.switchconv > > > p.adb.032t.ehcleanup1 > > > p.adb.033t.profile_estimate > > > p.adb.034t.local-pure-const1 > > > p.adb.035t.fnsplit > > > p.adb.036t.release_ssa > > > p.adb.037t.inline_param2 > > > p.adb.054t.copyrename2 > > -- > Eric Botcazou