On Tue, May 31, 2016 at 1:42 PM, Jan Hubicka <hubi...@ucw.cz> wrote: >> > 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.
And we have things like -fsplit-ivs-in-unroller that does part of it... Richard. > Honza