D110368 exposed 'earliest escape' handling in BatchAA. We can use this
via BatchAA instead of the single call of callCapturesBefore in
MemCpyOpt to improve the results in most cases.
On SPEC2006/SPEC2017/MultiSource we get the following changes:
Metric: memcpyopt.NumCallSlot test-suite.../CINT2006/403.gcc/403.gcc.test 17.00 26.00 52.9% test-suite...510.parest_r/510.parest_r.test 718.00 773.00 7.7% test-suite...006/447.dealII/447.dealII.test 12.00 12.00 0.0% test-suite...yApps-C++/PENNANT/PENNANT.test 9.00 9.00 0.0% test-suite...speed/602.gcc_s/602.gcc_s.test 15.00 14.00 -6.7% test-suite...7rate/502.gcc_r/502.gcc_r.test 15.00 14.00 -6.7% Metric: memcpyopt.NumMemCpyInstr test-suite.../CINT2006/403.gcc/403.gcc.test 47.00 62.00 31.9% test-suite...510.parest_r/510.parest_r.test 1600.00 1654.00 3.4% test-suite...006/447.dealII/447.dealII.test 108.00 108.00 0.0% test-suite...marks/7zip/7zip-benchmark.test 10.00 10.00 0.0% test-suite...yApps-C++/PENNANT/PENNANT.test 13.00 13.00 0.0% test-suite...speed/602.gcc_s/602.gcc_s.test 91.00 90.00 -1.1% test-suite...7rate/502.gcc_r/502.gcc_r.test 91.00 90.00 -1.1% Metric: memcpyopt.NumMoveToCpy test-suite...marks/7zip/7zip-benchmark.test 4.00 19.00 375.0% test-suite...006/447.dealII/447.dealII.test 122.00 150.00 23.0% test-suite...510.parest_r/510.parest_r.test 322.00 394.00 22.4% test-suite...speed/602.gcc_s/602.gcc_s.test NaN NaN NaN test-suite...7rate/502.gcc_r/502.gcc_r.test NaN NaN NaN test-suite.../CINT2006/403.gcc/403.gcc.test NaN NaN NaN test-suite...yApps-C++/PENNANT/PENNANT.test NaN 4.00 NaN
No changes for memcpyopt.NumMemSetInfer
Compile-time impact
NewPM-O3: +0.02 (outlier mafft +0.31%)
NewPM-ReleaseThinLTO: +0.01% (no notable outliers)
NewPM-ReleaseLTO-g: +0.03% (no notable outliers)