[Bug tree-optimization/79347] [7 regression] vect_do_peeling is messing up profile
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 6 18:08:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79347
--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Further work needed. I did not fix the actual issue in vectorizer because I am
really lost in the new prologue code. I hope Bin will chime in and help me ;)
The situation is not that bad overall, but it could be significantly better ;)
For tramp3d the mismatch count looks as follows:
tramp.ii.156t.ch_vect 185
tramp.ii.157t.ifcvt 267
tramp.ii.158t.vect 1076
...
tramp.ii.226t.optimized 888
the increase from 185 to 267 are the fake mismatches that should go away after
folding, so vectorizer itself introduce about 800 new errors.
On gcc 6 the scores are:
tramp3d-v4.cpp.146t.ch_vect 331
tramp3d-v4.cpp.147t.ifcvt 331
tramp3d-v4.cpp.148t.vect 1050
....
tramp3d-v4.cpp.211t.optimized 1039
So the overall mismatch count is worse, but vectorizer is somewhat less
disturbing. The main reason for decrease of mismatch count is stronger early
opts. On mainline I get:
tramp.ii.091t.ccp2 0
tramp.ii.093t.cunrolli 17
tramp.ii.094t.backprop 17
tramp.ii.095t.phiprop 17
tramp.ii.096t.forwprop2 17
tramp.ii.097t.objsz2 17
tramp.ii.098t.alias 17
tramp.ii.099t.retslot 17
tramp.ii.100t.fre3 42
tramp.ii.101t.mergephi2 40
tramp.ii.102t.thread1 98
tramp.ii.103t.vrp1 265
tramp.ii.105t.dce2 169
while gcc 6 gets:
tramp3d-v4.cpp.084t.oaccdevlow 0
tramp3d-v4.cpp.086t.ccp2 0
tramp3d-v4.cpp.087t.cunrolli 23
tramp3d-v4.cpp.088t.backprop 23
tramp3d-v4.cpp.089t.phiprop 23
tramp3d-v4.cpp.090t.forwprop2 23
tramp3d-v4.cpp.091t.objsz2 23
tramp3d-v4.cpp.092t.alias 23
tramp3d-v4.cpp.093t.retslot 23
tramp3d-v4.cpp.094t.fre3 31
tramp3d-v4.cpp.095t.mergephi2 29
tramp3d-v4.cpp.096t.vrp1 466
tramp3d-v4.cpp.098t.dce2 426
Report on vrp1 itself is wrong because it dumps bbs multiple times, but clearly
vrp1+thread1 now introduce a lot fewer problems than vrp1 in gcc 6. Most of
those mismatches are justified becuase we prove some branches with non-0
probability to be impossible or we thread in a way contradicting profile.
Honza
More information about the Gcc-bugs
mailing list