Hi Martin,
Martin Liška <mli...@suse.cz> writes: > On 7/10/20 4:14 AM, Jiufu Guo wrote: >> Thanks so much for your time and kindly help!!! > > And I run your patch on SPEC2006 with: > https://gcc.gnu.org/pipermail/gcc-patches/2020-July/549728.html > > Doing that I see just few changes: > > diff -qr /tmp/before /tmp/after > Files /tmp/before/Meat.fppized.f90.000i.profile-report and > /tmp/after/Meat.fppized.f90.000i.profile-report differ > Files /tmp/before/bezier.cpp.000i.profile-report and > /tmp/after/bezier.cpp.000i.profile-report differ > Files > /tmp/before/module_big_step_utilities_em.fppized.f90.000i.profile-report and > /tmp/after/module_big_step_utilities_em.fppized.f90.000i.profile-report differ > Files /tmp/before/module_cu_bmj.fppized.f90.000i.profile-report and > /tmp/after/module_cu_bmj.fppized.f90.000i.profile-report differ > Files /tmp/before/momx2.f.000i.profile-report and > /tmp/after/momx2.f.000i.profile-report differ > Files /tmp/before/momx3.f.000i.profile-report and > /tmp/after/momx3.f.000i.profile-report differ > Files /tmp/before/tml.f.000i.profile-report and > /tmp/after/tml.f.000i.profile-report differ > Files /tmp/before/tranx2.f.000i.profile-report and > /tmp/after/tranx2.f.000i.profile-report differ > Files /tmp/before/tranx3.f.000i.profile-report and > /tmp/after/tranx3.f.000i.profile-report differ > > But I see few regression, e.g.: > > $ cat bezier.ii > int bezier_value_t, bezier_value_du_1; > int bezier_value_u[4], bezier_value_du[4]; > void bezier_value() { > int i = 1; > for (; i < 4; i++) { > bezier_value_u[i] = 1; > bezier_value_du[i] = i * bezier_value_u[i - 1]; > bezier_value_t = bezier_value_du_1; > } > } > > $ g++ bezier.ii -c -march=native -O3 -Wno-multichar > -Wno-aggressive-loop-optimizations -fdump-tree-pcom=/tmp/bad.txt > ... > > And your patch changed: > > - <bb 15> [local count: 134217728]: > + <bb 15> [local count: 89478486]: > > where the function looks like: > > <bb 3> [local count: 268435456]: > ... > if (ivtmp_45 > 1) > goto <bb 15>; [50.00%] > else > goto <bb 10>; [50.00%] > > <bb 15> [local count: 89478486]: > goto <bb 3>; [100.00%] > > So 89478486 != 268435456 / 2. That seems a regression caused by your patch. > > Can you please check it? Thanks a lot for your tests and findings! Sure, I will have a check. BR. Jiufu, > Martin