> > I would say we should handle -frename-registers same way as we do > > -fschedule-insns. > > I.e. enable/disable it on target basis rather than budnle it to loop > > unrolling. > > But that is for future patch. I will commit this and propose patch making > > -fpeel-loops > > independent of rename-registers next > > Ok. Does -fweb still do what its documentation says (enable register > allocation to > work on pseudos directly)? Given its downside and strong GIMPLE > optimizations maybe > it is time to remove it?
I will wait with comitting the renaming patch and we will see the effect with -fno-unroll-loops on ia64 tester (it probably pays back more on in-order target) and we can test effect with -funroll-loops by patching it tomorrow. I guess IRA does live range pslitting by itself. Register allocator is not the only pass which does not like reuse of pseudo. Web originally also made -fschedule-insns (not -fschedule-insns2) and CSE to work harder. In tree-SSA world most of reuse is avoided by out-of-ssa pass. Random reuse these days is limited to loop unrolling and RTL expansion I think. Without unroling webizer renames 204 pseudos on tramp3d that seems close to 0. I can try to dig into that. With -funroll-all-loops it renames 17309 registers. Of course it would be possible to write unroller specific renamer, but it would hardly be any wasier than webizer. Honza