On Wed, Sep 30, 2015 at 12:00 AM, Pat Haugen <[email protected]> wrote: > On 09/25/2015 11:51 PM, Ajit Kumar Agarwal wrote: >> >> I have made the following changes in the estimate_reg_pressure_cost >> function used >> by the loop invariant and IVOPTS. >> >> Earlier the estimate_reg_pressure cost uses the cost of n_new variables >> that are generated by the Loop Invariant >> and IVOPTS. These are not sufficient for register pressure calculation. >> The register pressure cost calculation should >> use the n_new + n_old (numbers) to consider the cost. n_old is the >> register used inside the loops and the effect of >> n_new new variables generated by loop invariant and IVOPTS on register >> pressure is based on how the new >> variables impact on register used inside the loops. The increase or >> decrease in register pressure is due to the impact >> of new variables on the register used inside the loops. The >> register-register move cost or the spill cost should consider >> the cost associated with register used and the new variables generated. >> The movement of new variables increases or >> decreases the register pressure, which is based on overall cost of n_new >> + n_old variables. >> >> The increase and decrease in register pressure is based on the overall >> cost of n_new + n_old as the changes in the >> register pressure caused due to new variables is based on how the changes >> behave with respect to the register used >> in the loops. >> >> Thus the register pressure caused to new variables is based on the new >> variables and its impact on register used inside >> the loops and thus consider the overall cost of n_new + n_old. >> >> Bootstrap for i386 and reg tested on i386 with the change is fine. >> >> SPEC CPU 2000 benchmarks are run and there is following impact on the >> performance >> and code size. >> >> ratio with the optimization vs ratio without optimization for INT >> benchmarks >> (3807.632 vs 3804.661) >> >> ratio with the optimization vs ratio without optimization for FP >> benchmarks >> ( 4668.743 vs 4778.741) >> >> Code size reduction with respect to FP SPEC CPU 2000 benchmarks >> >> Number of instruction with optimization = 1094117 >> Number of instruction without optimization = 1094659 >> >> Reduction in number of instruction with the optimization = 542 >> instruction. > > I tried your patch on powerpc64le using CPU2006. There was a small > degradation in mcf (-1.5%) and small improvement in bwaves (+1.3%), the > remaining benchmarks (and overall results) were neutral. We collected performance data on AArch64 for spec2k6, Most cases vary within [-1%, 1%], three cases vary from +/-[1%, 2%]. INT cases are generally slightly regressed, while FP cases are generally slightly improved. INT overall score is regressed by 0.25%; FP overall score is improved by 0.35%.
Thanks, bin > > -Pat >
