public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile
@ 2021-12-13 10:51 hubicka at gcc dot gnu.org
2021-12-13 10:55 ` [Bug tree-optimization/103680] " hubicka at gcc dot gnu.org
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-12-13 10:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
Bug ID: 103680
Summary: Jump threading and switch corrupts profile
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: hubicka at gcc dot gnu.org
Target Milestone: ---
Hi,
with -fprofile-report is it now again possible to produce quite useful stats on
what passes misupdates profile.
I am attaching preport for FDO+LTO build of clang binary. The column dynamic
mismatch is most relevant and show
number of executions of BB where profile is mismatched.
Clearly threadfull, vrp, ch, dom and switchlower seems main offenders.
cddce is also very high, but I think it is just making previous mismatches
worse - will look into that
It seems that the ranger threading revamp dropped profile updating code.
Andy, Jeff, I wonder what are your thoughts/plans on updating the profile here?
Profile consistency report:
Pass dump id and name |static mismatch |dynamic mismatch
|overall
|
|in count |out prob |in count
|out prob |size |time
|
79i cp | 1245 +1245| 23 +23| 793393361
+793393361| 0 | 6865717 | 38369447330388
|
83i inline | 2985 +1740| 204 +181| 10286436405
+9493043044| 15236 +15236| 10407224 +51.6%| 30175876351621
-21.4%|
92t fixup_cfg | 2985 | 204 | 10286436405
| 15236 | 10407224 | 30175876351621
|
97t ompdevlow | 2985 | 204 | 10286436405
| 15236 | 10407224 | 30175876351621
|
99t adjust_alignment | 2985 | 204 | 10286436405
| 15236 | 10407224 | 30175876351621
|
100t ccp | 3690 +705| 205 +1| 10489595202
+203158797| 1581960 +1566724| 10379522 -0.3%| 29996985353603
-0.6%|
101t objsz | 3690 | 205 | 10489595202
| 1581960 | 10379522 | 29996985353603
|
103t cunrolli | 3828 +138| 205 | 10056896600
-432698602| 1581960 | 10378081 -0.0%| 29950281172451
-0.2%|
104t backprop | 3828 | 205 | 10056896600
| 1581960 | 10378081 | 29950281172451
|
105t phiprop | 3828 | 205 | 10056896600
| 1581960 | 10387153 +0.1%| 29949755030810
-0.0%|
106t forwprop | 3843 +15| 205 | 10159477423
+102580823| 1581960 | 10378573 -0.1%| 29895061666317
-0.2%|
107t alias | 3843 | 205 | 10159477423
| 1581960 | 10378573 | 29895061666317
|
108t retslot | 3843 | 205 | 10159477423
| 1581960 | 10378573 | 29895061666317
|
109t fre | 5399 +1556| 204 -1| 19869551210
+9710073787| 15236 -1566724| 10134542 -2.4%| 28699013248678
-4.0%|
110t mergephi | 5278 -121| 204 | 20025371186
+155819976| 15236 | 10134542 | 28699013248678
|
111t threadfull | 72831 +67553| 1224 +1020| 202402568370
+182377197184| 972775135 +972759899| 10206940 +0.7%| 28026521150697
-2.3%|
112t vrp | 70137 -2694| 1276 +52| 216458254352
+14055685982| 1014740538 +41965403| 10113204 -0.9%| 27883751110042
-0.5%|
113t dse | 70069 -68| 1275 -1| 216259198094
-199056258| 1014740522 -16| 9976103 -1.4%| 27259758460246
-2.2%|
114t dce | 68646 -1423| 1251 -24| 213766589405
-2492608689| 1010738219 -4002303| 9925029 -0.5%| 26929885571404
-1.2%|
115t stdarg | 68646 | 1251 | 213766589405
| 1010738219 | 9925029 | 26929885571404
|
116t cdce | 68646 | 1251 | 213766589405
| 1010738219 | 9925029 | 26929885571404
|
117t cselim | 68623 -23| 1251 | 213766434213
-155192| 1010738219 | 9922625 -0.0%| 26933160470828
+0.0%|
118t copyprop | 68236 -387| 1240 -11| 212518014812
-1248419401| 1003793990 -6944229| 9921476 -0.0%| 26931328243255
-0.0%|
119t ifcombine | 68132 -104| 1185 -55| 215021849380
+2503834568| 1175015399 +171221409| 9923593 +0.0%| 27111703655114
+0.7%|
120t mergephi | 60635 -7497| 1183 -2| 213958226983
-1063622397| 1170269374 -4746025| 9923593 | 27111703655114
|
121t phiopt | 60064 -571| 1168 -15| 213278698412
-679528571| 1169780184 -489190| 9887693 -0.4%| 27065894430626
-0.2%|
122t tailr | 60077 +13| 1168 | 213591827870
+313129458| 1169780184 | 9885590 -0.0%| 27029704150703
-0.1%|
123t ch | 61604 +1527| 1166 -2| 231773845670
+18182017800| 1169779155 -1029| 9923814 +0.4%| 27005048401494
-0.1%|
124t cplxlower | 61604 | 1166 | 231773845670
| 1169779155 | 9923814 | 27005048401494
|
125t sra | 61604 | 1166 | 231773845670
| 1169779155 | 9836640 -0.9%| 26380634193283
-2.3%|
126t thread | 68862 +7258| 1419 +253| 282837813276
+51063967606| 1884527067 +714747912| 9867464 +0.3%| 26288555069118
-0.3%|
127t dom | 73213 +4351| 1439 +20| 289296055849
+6458242573| 1881062486 -3464580| 9851389 -0.2%| 25915894360837
-1.4%|
128t copyprop | 72922 -291| 1437 -2| 288791521291
-504534558| 1880452325 -610161| 9848087 -0.0%| 25909920082474
-0.0%|
129t isolate-paths | 80793 +7871| 1437 | 289175243159
+383721868| 1887100849 +6648524| 9866571 +0.2%| 25908647817646
-0.0%|
130t reassoc | 81984 +1191| 1434 -3| 295644564738
+6469321579| 1886368237 -732612| 9879067 +0.1%| 25971893839783
+0.2%|
131t dce | 81377 -607| 1430 -4| 294937412703
-707152035| 1878493133 -7875104| 9801097 -0.8%| 25561486413957
-1.6%|
132t forwprop | 81666 +289| 1430 | 297646371403
+2708958700| 1878493133 | 9794576 -0.1%| 25528787255201
-0.1%|
133t phiopt | 81584 -82| 1430 | 297639291119
-7080284| 1878493133 | 9792840 -0.0%| 25528618873011
-0.0%|
134t ccp | 81588 +4| 1430 | 297550679459
-88611660| 1893125633 +14632500| 9791108 -0.0%| 25519558936471
-0.0%|
135t sincos | 81588 | 1430 | 297550679459
| 1893125633 | 9791108 | 25519558936471
|
136t bswap | 81588 | 1430 | 297550679459
| 1893125633 | 9791127 +0.0%| 25519558936471
|
137t laddress | 81588 | 1430 | 297550679459
| 1893125633 | 9793023 +0.0%| 25526884074520
+0.0%|
138t lim | 81648 +60| 1430 | 297859756610
+309077151| 1893125633 | 9794191 +0.0%| 25495948555139
-0.1%|
139t walloca | 81648 | 1430 | 297859756610
| 1893125633 | 9794191 | 25495948555139
|
140t pre | 80261 -1387| 1419 -11| 299154507133
+1294750523| 1885986610 -7139023| 9670301 -1.3%| 24860057746822
-2.5%|
141t sink | 80062 -199| 1416 -3| 299366883910
+212376777| 1855713098 -30273512| 9628335 -0.4%| 24691926355914
-0.7%|
145t dse | 80062 | 1416 | 299366883910
| 1855713098 | 9621313 -0.1%| 24673080303541
-0.1%|
146t dce | 79991 -71| 1416 | 299440495723
+73611813| 1855713098 | 9620600 -0.0%| 24670512443377
-0.0%|
147t fix_loops | 79991 | 1416 | 299440495723
| 1855713098 | 9620600 | 24670512443377
|
148t loop | 79991 | 1416 | 299440495723
| 1855713098 | 9620600 | 24670512443377
|
149t loopinit | 79991 | 1416 | 299440495723
| 1855713098 | 9620596 -0.0%| 24670508570371
-0.0%|
150t unswitch | 80230 +239| 1416 | 301091048942
+1650553219| 1855713098 | 9621927 +0.0%| 24664900640767
-0.0%|
151t sccp | 80229 -1| 1416 | 301090909602
-139340| 1855713098 | 9627674 +0.1%| 24665669129556
+0.0%|
152t lsplit | 80275 +46| 1416 | 301901055378
+810145776| 1855713098 | 9628013 +0.0%| 24669151374922
+0.0%|
153t lversion | 80275 | 1416 | 301901055378
| 1855713098 | 9628013 | 24669151374922
|
154t unrolljam | 80275 | 1416 | 301901055378
| 1855713098 | 9628013 | 24669151374922
|
155t cddce | 96307 +16032| 1405 -11| 400398657031
+98497601653| 1723477545 -132235553| 9615375 -0.1%| 24551469098820
-0.5%|
156t ivcanon | 96308 +1| 1405 | 400399330048
+673017| 1723477545 | 9617912 +0.0%| 24609543607312
+0.2%|
157t ldist | 96261 -47| 1530 +125| 396226006072
-4173323976| 2013657886 +290180341| 9617858 -0.0%| 24560695230994
-0.2%|
158t linterchange | 96261 | 1530 | 396226006072
| 2013657886 | 9617858 | 24560695230994
|
159t copyprop | 96263 +2| 1530 | 396225913851
-92221| 2013657886 | 9617599 -0.0%| 24560616860061
-0.0%|
166t ompexpssa | 96263 | 1530 | 396225913851
| 2013657886 | 9617599 | 24560616860061
|
167t ch_vect | 97304 +1041| 1530 | 396265259912
+39346061| 2013657886 | 9617920 +0.0%| 24560139310683
-0.0%|
168t ifcvt | 97464 +160| 1738 +208| 399080908207
+2815648295| 3365644947 +1351987061| 9621367 +0.0%| 24646895835295
+0.4%|
169t vect | 97302 -162| 1530 -208| 395362097676
-3718810531| 2013657886 -1351987061| 9620671 -0.0%| 24574578374634
-0.3%|
170t dce | 97284 -18| 1530 | 395133116739
-228980937| 2013657886 | 9619530 -0.0%| 24561056957484
-0.1%|
171t pcom | 97284 | 1530 | 395133116739
| 2013657886 | 9619527 -0.0%| 24560026676163
-0.0%|
172t cunroll | 109977 +12693| 1636 +106| 478680255671
+83547138932| 1999297268 -14360618| 9849220 +2.4%| 24167289537557
-1.6%|
173t fre | 109849 -128| 1636 | 478355091001
-325164670| 1999297268 | 9823426 -0.3%| 24002006012531
-0.7%|
174t dse | 109849 | 1636 | 478355091001
| 1999297268 | 9822112 -0.0%| 23986782125423
-0.1%|
175t slp | 109849 | 1636 | 478355091001
| 1999297268 | 9748052 -0.8%| 23841228691052
-0.6%|
177t ivopts | 109849 | 1636 | 478355091001
| 1999297268 | 9754436 +0.1%| 23818230835963
-0.1%|
178t lim | 109849 | 1636 | 478355091001
| 1999297268 | 9754536 +0.0%| 23818105695337
-0.0%|
179t loopdone | 109726 -123| 1636 | 478267981458
-87109543| 1999297268 | 9754508 -0.0%| 23818061294635
-0.0%|
180t no_loop | 109726 | 1636 | 478267981458
| 1999297268 | 9754508 | 23818061294635
|
181t slp | 109726 | 1636 | 478267981458
| 1999297268 | 9718223 -0.4%| 23804224391421
-0.1%|
183t veclower2 | 109575 -151| 1635 -1| 477128368553
-1139612905| 1999297226 -42| 9717499 -0.0%| 23803951872403
-0.0%|
184t switchlower | 216380 +106805| 1431 -204| 1380672969073
+903544600520| 1921470715 -77826511| 9714676 -0.0%| 25128620292826
+5.6%|
186t reassoc | 215688 -692| 1430 -1| 1380025901003
-647068070| 1921462330 -8385| 9725168 +0.1%| 25170465801635
+0.2%|
187t slsr | 215688 | 1430 | 1380025901003
| 1921462330 | 9725790 +0.0%| 25171051075791
+0.0%|
188t split-paths | 215690 +2| 1430 | 1380032502398
+6601395| 1921462330 | 9727714 +0.0%| 25171051342158
+0.0%|
189t tracer | 217826 +2136| 1458 +28| 1272463552867
-107568949531| 1909758769 -11703561| 9892396 +1.7%| 25179157448987
+0.0%|
190t fre | 218023 +197| 1456 -2| 1291101339405
+18637786538| 1905694277 -4064492| 9860835 -0.3%| 25066769644895
-0.4%|
191t thread | 224304 +6281| 2113 +657| 1260887440991
-30213898414| 3227986771 +1322292493| 9890836 +0.3%| 24869097162860
-0.8%|
192t dom | 231623 +7319| 2120 +7| 1265636026287
+4748585296| 3398605099 +170618329| 9891998 +0.0%| 24698836238947
-0.7%|
193t strlen | 231623 | 2120 | 1265636026287
| 3398605099 | 9883223 -0.1%| 24694963594820
-0.0%|
194t threadfull | 233644 +2021| 2218 +98| 1273228200834
+7592174547| 3495419473 +96814373| 9906384 +0.2%| 24638117243328
-0.2%|
195t vrp | 232054 -1590| 2294 +76| 1273076379738
-151821096| 4379683658 +884264185| 9878349 -0.3%| 24562986138635
-0.3%|
196t ccp | 231564 -490| 2289 -5| 1272303409980
-772969758| 4385826012 +6142354| 9877293 -0.0%| 24560983756866
-0.0%|
197t wrestrict | 231564 | 2289 | 1272303409980
| 4385826012 | 9877293 | 24560983756866
|
198t dse | 230745 -819| 2288 -1| 1272023199564
-280210416| 4385816013 -9999| 9810886 -0.7%| 24365376510779
-0.8%|
199t cddce | 241010 +10265| 2282 -6| 1369149644581
+97126445017| 4385012766 -803247| 9806927 -0.0%| 24352303495462
-0.1%|
200t forwprop | 241128 +118| 2277 -5| 1369582809624
+433165043| 4380754912 -4257854| 9788180 -0.2%| 24150309614008
-0.8%|
201t phiopt | 240767 -361| 2276 -1| 1369413694596
-169115028| 4371615103 -9139809| 9787199 -0.0%| 24147022235622
-0.0%|
202t fab | 238774 -1993| 2273 -3| 1356127299769
-13286394827| 4359973464 -11641639| 9776342 -0.1%| 24120633180272
-0.1%|
203t widening_mul | 238774 | 2273 | 1356127299769
| 4359973464 | 9774585 -0.0%| 24117914735934
-0.0%|
204t sink | 237049 -1725| 2271 -2| 1352510559484
-3616740285| 4359971169 -2295| 9763920 -0.1%| 24054869732314
-0.3%|
205t store-merging | 237049 | 2271 | 1352510559484
| 4359971169 | 9758244 -0.1%| 24015252481346
-0.2%|
206t tailc | 237045 -4| 2271 | 1352494254576
-16304908| 4359971169 | 9758192 -0.0%| 24015192437586
-0.0%|
207t dce | 235783 -1262| 2270 -1| 1350206240191
-2288014385| 4359971169 | 9751280 -0.1%| 23996865950908
-0.1%|
208t crited | 235783 | 2270 | 1350206240191
| 4359971169 | 9751280 | 23996865950908
|
209t uninit | 235783 | 2270 | 1350206240191
| 4359971169 | 9751280 | 23996865950908
|
210t local-pure-const | 235783 | 2270 | 1350349863074
+143622883| 4359971169 | 9751280 | 23997783661558
+0.0%|
211t modref | 235783 | 2270 | 1350349863074
| 4359971169 | 9751280 | 23997783661558
|
212t uncprop | 235783 | 2270 | 1350349863074
| 4359971169 | 9751280 | 23997783661558
|
246t nrv | 235783 | 2270 | 1350349863074
| 4359971169 | 9751272 -0.0%| 23997783661558
|
247t isel | 235783 | 2270 | 1350349863074
| 4359971169 | 9751262 -0.0%| 23997641911017
-0.0%|
250t optimized | 230075 -5708| 2265 -5| 1350486491782
+136628708| 4380125028 +20153859| 9751194 -0.0%| 24087942045836
+0.4%|
251t waccess | 230075 | 2265 | 1350486491782
| 4380125028 | 9751194 | 24087942045836
|
252r expand | 219555 -10520| 1914 -351| 1300300159576
-50186332206| 3055506535
-1324618492|-------------------|--------------------------|
253r vregs | 219555 | 1914 | 1300300159576
| 3055506535 | 65793993 +0.0%| 158587648130835
|
254r into_cfglayout | 215752 -3803| 1822 -92| 1300334045064
+33885488| 2856914371 -198592164| 65197156 -0.9%| 157473684195974
-0.7%|
255r jump | 215998 +246| 1826 +4| 1300487250854
+153205790| 2856927565 +13194| 65074406 -0.2%| 157201185251199
-0.2%|
256r subreg1 | 215998 | 1826 | 1300487250854
| 2856927565 | 64661258 -0.6%| 156980226244131
-0.1%|
257r dfinit | 215998 | 1826 | 1300487250854
| 2856927565 | 64661258 | 156980226244131
|
258r cse1 | 215922 -76| 1823 -3| 1300444468450
-42782404| 2856913789 -13776| 63667797 -1.5%| 156707311344200
-0.2%|
259r fwprop1 | 215922 | 1823 | 1300444468450
| 2856913789 | 59414712 -6.7%| 151499311612714
-3.3%|
260r cprop | 217389 +1467| 1818 -5| 1302497316424
+2052847974| 2840122245 -16791544| 59226283 -0.3%| 150812689195162
-0.5%|
261r rtl pre | 217389 | 1818 | 1302497316424
| 2840122245 | 59622715 +0.7%| 151863962265772
+0.7%|
262r hoist | 217389 | 1818 | 1302497316424
| 2840122245 | 59755680 +0.2%| 151863967787842
+0.0%|
263r cprop | 217370 -19| 1817 -1| 1301012893039
-1484423385| 2839953333 -168912| 58928550 -1.4%| 150419774693093
-1.0%|
265r cse_local | 217370 | 1817 | 1301012893039
| 2839953333 | 58809547 -0.2%| 149902126430912
-0.3%|
266r ce1 | 216528 -842| 1693 -124| 1297874035422
-3138857617| 2805149089 -34804244| 58601053 -0.4%| 149864991761443
-0.0%|
267r reginfo | 216528 | 1693 | 1297874035422
| 2805149089 | 58601053 | 149864991761443
|
268r loop2 | 216528 | 1693 | 1297874035422
| 2805149089 | 58601053 | 149864991761443
|
269r loop2_init | 216528 | 1693 | 1297874035422
| 2805149089 | 58601053 | 149864991761443
|
270r loop2_invariant | 216528 | 1693 | 1297874035422
| 2805149089 | 58809979 +0.4%| 150765280729437
+0.6%|
271r loop2_unroll | 218657 +2129| 1693 | 1311747865069
+13873829647| 2805149089 | 59303324 +0.8%| 150013522697100
-0.5%|
273r loop2_done | 218275 -382| 1693 | 1317456278918
+5708413849| 2805149089 | 59303220 -0.0%| 150013718008790
+0.0%|
276r cprop | 219309 +1034| 1693 | 1334139229371
+16682950453| 2805149089 | 59015017 -0.5%| 148960435540453
-0.7%|
277r stv | 219309 | 1693 | 1334139229371
| 2805149089 | 59016692 +0.0%| 148964638599813
+0.0%|
278r cse2 | 219303 -6| 1693 | 1334078649228
-60580143| 2805149089 | 58832341 -0.3%| 148449045444312
-0.3%|
279r dse1 | 219303 | 1693 | 1334078649228
| 2805149089 | 58860273 +0.0%| 148453707235147
+0.0%|
280r fwprop2 | 219272 -31| 1693 | 1333290149948
-788499280| 2805149089 | 58835261 -0.0%| 148462300686089
+0.0%|
282r init-regs | 219272 | 1693 | 1333290149948
| 2805149089 | 58926009 +0.2%| 148510272881097
+0.0%|
283r ud_dce | 219272 | 1693 | 1333290149948
| 2805149089 | 58889468 -0.1%| 148335390497275
-0.1%|
284r combine | 219352 +80| 1693 | 1333648234805
+358084857| 2805149089 | 58543412 -0.6%| 144713034986525
-2.4%|
286r stv | 219352 | 1693 | 1333648234805
| 2805149089 | 58543412 | 144713034986525
|
287r ce2 | 219261 -91| 1692 -1| 1333465104885
-183129920| 2804833682 -315407| 58542853 -0.0%| 144717376160885
+0.0%|
288r jump_after_combine | 220292 +1031| 1711 +19| 1334075792643
+610687758| 2813150500 +8316818| 58542297 -0.0%| 144708534014247
-0.0%|
289r bbpart | 220256 -36| 1706 -5| 1333936023873
-139768770| 2813142257 -8243| 58642109 +0.2%| 144695771569291
-0.0%|
290r outof_cfglayout | 220256 | 1706 | 1333936023873
| 2813142257 | 59149195 +0.9%| 145394559874685
+0.5%|
291r split1 | 220256 | 1706 | 1333936023873
| 2813142257 | 59197386 +0.1%| 145473058739988
+0.1%|
292r subreg3 | 220256 | 1706 | 1333936023873
| 2813142257 | 59251600 +0.1%| 145488031064603
+0.0%|
294r mode_sw | 220256 | 1706 | 1333936023873
| 2813142257 | 59251600 | 145488031064603
|
295r asmcons | 220256 | 1706 | 1333936023873
| 2813142257 | 59251600 | 145488031064603
|
300r ira | 220256 | 1706 | 1333936023873
| 2813142257 | 61492017 +3.8%| 148246220021068
+1.9%|
301r reload | 220045 -211| 1705 -1| 1334581013551
+644989678| 2812625999 -516259| 57379814 -6.7%| 146213679526534
-1.4%|
303r postreload | 220045 | 1705 | 1334581013551
| 2812625999 | 57248415 -0.2%| 146114585033173
-0.1%|
304r gcse2 | 220045 | 1705 | 1334581013551
| 2812625999 | 57248443 +0.0%| 146087407924926
-0.0%|
305r split2 | 220045 | 1705 | 1334581013551
| 2812625999 | 57519980 +0.5%| 146648496543144
+0.4%|
306r ree | 220045 | 1705 | 1334581013551
| 2812625999 | 57550983 +0.1%| 146968013482552
+0.2%|
307r cmpelim | 220045 | 1705 | 1334581013551
| 2812625999 | 57507638 -0.1%| 146861143961269
-0.1%|
308r pro_and_epilogue | 225303 +5258| 1709 +4| 1341177127695
+6596114144| 2812611798 -14201| 62704987 +9.0%| 162807859528298
+10.9%|
309r dse2 | 225303 | 1709 | 1341177127695
| 2812611798 | 62701751 -0.0%| 162807307011532
-0.0%|
310r csa | 225303 | 1709 | 1341177127695
| 2812611798 | 62685811 -0.0%| 162802974126976
-0.0%|
311r jump2 | 222011 -3292| 1700 -9| 1394955038853
+53777911158| 2811994770 -617028| 60591817 -3.3%| 162863551117381
+0.0%|
312r compgotos | 222011 | 1700 | 1394955038853
| 2811994770 | 60591817 | 162863551117381
|
314r peephole2 | 222011 | 1700 | 1394955038853
| 2811994770 | 61026320 +0.7%| 163016193759849
+0.1%|
315r ce3 | 221879 -132| 1700 | 1394975083423
+20044570| 2811994770 | 61000932 -0.0%| 163078660082367
+0.0%|
317r cprop_hardreg | 221879 | 1700 | 1394975083423
| 2811994770 | 60690862 -0.5%| 162902791239877
-0.1%|
318r rtl_dce | 221879 | 1700 | 1394975083423
| 2811994770 | 60674443 -0.0%| 162847446231467
-0.0%|
319r bbro | 217835 -4044| 1700 | 1358424822396
-36550261027| 2811994765 -5| 60592640 -0.1%| 162149759759118
-0.4%|
320r split3 | 217835 | 1700 | 1358424822396
| 2811994765 | 60593602 +0.0%| 162150528280896
+0.0%|
321r sched2 | 217835 | 1700 | 1358424822396
| 2811994765 | 60598064 +0.0%| 162181461863043
+0.0%|
323r stack | 217835 | 1700 | 1358424822396
| 2811994765 | 60598064 | 162181461863043
|
324r zero_call_used_regs | 217835 | 1700 | 1358424822396
| 2811994765 | 60598064 | 162181461863043
|
325r alignments | 217835 | 1700 | 1358424822396
| 2811994765 | 60598064 | 162181461863043
|
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
@ 2021-12-13 10:55 ` hubicka at gcc dot gnu.org
2021-12-13 12:26 ` marxin at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-12-13 10:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aldyh at gcc dot gnu.org,
| |law at gcc dot gnu.org,
| |marxin at gcc dot gnu.org
--- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
This is table to fit 80 column limit
Profile consistency report:
Pass dump id and name |dynamic mismatch
|in count |out prob
79i cp | 793393361 +793393361| 0
83i inline | 10286436405 +9493043044| 15236 +15236
92t fixup_cfg | 10286436405 | 15236
97t ompdevlow | 10286436405 | 15236
99t adjust_alignment | 10286436405 | 15236
100t ccp | 10489595202 +203158797| 1581960 +1566724
101t objsz | 10489595202 | 1581960
103t cunrolli | 10056896600 -432698602| 1581960
104t backprop | 10056896600 | 1581960
105t phiprop | 10056896600 | 1581960
106t forwprop | 10159477423 +102580823| 1581960
107t alias | 10159477423 | 1581960
108t retslot | 10159477423 | 1581960
109t fre | 19869551210 +9710073787| 15236 -1566724
110t mergephi | 20025371186 +155819976| 15236
11t threadfull | 202402568370 +182377197184| 972775135 +97275989
112t vrp | 216458254352 +14055685982| 1014740538 +41965403
113t dse | 216259198094 -199056258| 1014740522 -16
114t dce | 213766589405 -2492608689| 1010738219 -4002303
115t stdarg | 213766589405 | 1010738219
116t cdce | 213766589405 | 1010738219
117t cselim | 213766434213 -155192| 1010738219
118t copyprop | 212518014812 -1248419401| 1003793990 -6944229
119t ifcombine | 215021849380 +2503834568| 1175015399 +171221409
120t mergephi | 213958226983 -1063622397| 1170269374 -4746025
121t phiopt | 213278698412 -679528571| 1169780184 -489190
122t tailr | 213591827870 +313129458| 1169780184
123t ch | 231773845670 +18182017800| 1169779155 -1029
124t cplxlower | 231773845670 | 1169779155
125t sra | 231773845670 | 1169779155
126t thread | 282837813276 +51063967606| 1884527067 +714747912
127t dom | 289296055849 +6458242573| 1881062486 -3464580
128t copyprop | 288791521291 -504534558| 1880452325 -610161
129t isolate-paths | 289175243159 +383721868| 1887100849 +6648524
130t reassoc | 295644564738 +6469321579| 1886368237 -732612
131t dce | 294937412703 -707152035| 1878493133 -7875104
132t forwprop | 297646371403 +2708958700| 1878493133
133t phiopt | 297639291119 -7080284| 1878493133
134t ccp | 297550679459 -88611660| 1893125633 +14632500
135t sincos | 297550679459 | 1893125633
136t bswap | 297550679459 | 1893125633
137t laddress | 297550679459 | 1893125633
138t lim | 297859756610 +309077151| 1893125633
139t walloca | 297859756610 | 1893125633
140t pre | 299154507133 +1294750523| 1885986610 -7139023
141t sink | 299366883910 +212376777| 1855713098 -30273512
145t dse | 299366883910 | 1855713098
146t dce | 299440495723 +73611813| 1855713098
147t fix_loops | 299440495723 | 1855713098
148t loop | 299440495723 | 1855713098
149t loopinit | 299440495723 | 1855713098
150t unswitch | 301091048942 +1650553219| 1855713098
151t sccp | 301090909602 -139340| 1855713098
152t lsplit | 301901055378 +810145776| 1855713098
153t lversion | 301901055378 | 1855713098
154t unrolljam | 301901055378 | 1855713098
55t cddce | 400398657031 +98497601653| 1723477545 -132235553
156t ivcanon | 400399330048 +673017| 1723477545
157t ldist | 396226006072 -4173323976| 2013657886 +290180341
158t linterchange | 396226006072 | 2013657886
159t copyprop | 396225913851 -92221| 2013657886
166t ompexpssa | 396225913851 | 2013657886
167t ch_vect | 396265259912 +39346061| 2013657886
168t ifcvt | 399080908207 +2815648295| 3365644947 +1351987061
169t vect | 395362097676 -3718810531| 2013657886 -1351987061
170t dce | 395133116739 -228980937| 2013657886
171t pcom | 395133116739 | 2013657886
172t cunroll 6| 478680255671 +83547138932| 1999297268 -1436061
173t fre | 478355091001 -325164670| 1999297268
174t dse | 478355091001 | 1999297268
175t slp | 478355091001 | 1999297268
177t ivopts | 478355091001 | 1999297268
178t lim | 478355091001 | 1999297268
179t loopdone | 478267981458 -87109543| 1999297268
180t no_loop | 478267981458 | 1999297268
181t slp | 478267981458 | 1999297268
183t veclower2 | 477128368553 -1139612905| 1999297226 -42
184t switchlower 04| 1380672969073 +903544600520| 1921470715 -7782
186t reassoc | 1380025901003 -647068070| 1921462330 -838
187t slsr | 1380025901003 | 1921462330
188t split-paths | 1380032502398 +6601395| 1921462330
189t tracer | 1272463552867 -107568949531| 1909758769 -117035
190t fre | 1291101339405 +18637786538| 1905694277 -406449
191t thread | 1260887440991 -30213898414| 3227986771 +132229249
192t dom | 1265636026287 +4748585296| 3398605099 +17061832
193t strlen | 1265636026287 | 3398605099
194t threadfull | 1273228200834 +7592174547| 3495419473 +9681437
195t vrp | 1273076379738 -151821096| 4379683658 +88426418
196t ccp | 1272303409980 -772969758| 4385826012 +614235
197t wrestrict | 1272303409980 | 4385826012
198t dse | 1272023199564 -280210416| 4385816013 -999
199t cddce 6| 1369149644581 +97126445017| 4385012766 -8032
200t forwprop | 1369582809624 +433165043| 4380754912 -425785
201t phiopt | 1369413694596 -169115028| 4371615103 -913980
202t fab | 1356127299769 -13286394827| 4359973464 -1164163
203t widening_mul | 1356127299769 | 4359973464
204t sink | 1352510559484 -3616740285| 4359971169 -229
205t store-merging | 1352510559484 | 4359971169
206t tailc | 1352494254576 -16304908| 4359971169
207t dce | 1350206240191 -2288014385| 4359971169
208t crited | 1350206240191 | 4359971169
209t uninit | 1350206240191 | 4359971169
210t local-pure-const | 1350349863074 +143622883| 4359971169
211t modref | 1350349863074 | 4359971169
212t uncprop | 1350349863074 | 4359971169
246t nrv | 1350349863074 | 4359971169
247t isel | 1350349863074 | 4359971169
250t optimized | 1350486491782 +136628708| 4380125028 +2015385
251t waccess | 1350486491782 | 4380125028
252r expand 1| 1300300159576 -50186332206| 3055506535 -13246184
253r vregs | 1300300159576 | 3055506535
254r into_cfglayout | 1300334045064 +33885488| 2856914371 -19859216
255r jump | 1300487250854 +153205790| 2856927565 +1319
256r subreg1 | 1300487250854 | 2856927565
257r dfinit | 1300487250854 | 2856927565
258r cse1 | 1300444468450 -42782404| 2856913789 -1377
259r fwprop1 | 1300444468450 | 2856913789
260r cprop | 1302497316424 +2052847974| 2840122245 -1679154
261r rtl pre | 1302497316424 | 2840122245
262r hoist | 1302497316424 | 2840122245
263r cprop | 1301012893039 -1484423385| 2839953333 -16891
265r cse_local | 1301012893039 | 2839953333
266r ce1 | 1297874035422 -3138857617| 2805149089 -3480424
267r reginfo | 1297874035422 | 2805149089
268r loop2 | 1297874035422 | 2805149089
269r loop2_init | 1297874035422 | 2805149089
270r loop2_invariant | 1297874035422 | 2805149089
271r loop2_unroll | 1311747865069 +13873829647| 2805149089
273r loop2_done | 1317456278918 +5708413849| 2805149089
276r cprop | 1334139229371 +16682950453| 2805149089
277r stv | 1334139229371 | 2805149089
278r cse2 | 1334078649228 -60580143| 2805149089
279r dse1 | 1334078649228 | 2805149089
280r fwprop2 | 1333290149948 -788499280| 2805149089
282r init-regs | 1333290149948 | 2805149089
283r ud_dce | 1333290149948 | 2805149089
284r combine | 1333648234805 +358084857| 2805149089
286r stv | 1333648234805 | 2805149089
287r ce2 | 1333465104885 -183129920| 2804833682 -31540
288r jump_after_combine| 1334075792643 +610687758| 2813150500 +831681
289r bbpart | 1333936023873 -139768770| 2813142257 -824
290r outof_cfglayout | 1333936023873 | 2813142257
291r split1 | 1333936023873 | 2813142257
292r subreg3 | 1333936023873 | 2813142257
294r mode_sw | 1333936023873 | 2813142257
295r asmcons | 1333936023873 | 2813142257
300r ira | 1333936023873 | 2813142257
301r reload | 1334581013551 +644989678| 2812625999 -51625
303r postreload | 1334581013551 | 2812625999
304r gcse2 | 1334581013551 | 2812625999
305r split2 | 1334581013551 | 2812625999
306r ree | 1334581013551 | 2812625999
307r cmpelim | 1334581013551 | 2812625999
309r pro_and_epilogue | 1341177127695 +6596114144| 2812611798 -1420
309r dse2 | 1341177127695 | 2812611798
310r csa | 1341177127695 | 2812611798
311r jump2 | 1394955038853 +53777911158| 2811994770 -61702
312r compgotos | 1394955038853 | 2811994770
314r peephole2 | 1394955038853 | 2811994770
315r ce3 | 1394975083423 +20044570| 2811994770
317r cprop_hardreg | 1394975083423 | 2811994770
318r rtl_dce | 1394975083423 | 2811994770
319r bbro | 1358424822396 -36550261027| 2811994765 -
320r split3 | 1358424822396 | 2811994765
321r sched2 | 1358424822396 | 2811994765
323r stack | 1358424822396 | 2811994765
324r zero_call_used_reg| 1358424822396 | 2811994765
325r alignments | 1358424822396 | 2811994765
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
2021-12-13 10:55 ` [Bug tree-optimization/103680] " hubicka at gcc dot gnu.org
@ 2021-12-13 12:26 ` marxin at gcc dot gnu.org
2021-12-13 13:56 ` pinskia at gcc dot gnu.org
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-12-13 12:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=101301
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
I can confirm the switch lowering pass breaks profile update, it's mentioned
here https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101301#c10 and I'm planning
to work on that in stage 3/4.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
2021-12-13 10:55 ` [Bug tree-optimization/103680] " hubicka at gcc dot gnu.org
2021-12-13 12:26 ` marxin at gcc dot gnu.org
@ 2021-12-13 13:56 ` pinskia at gcc dot gnu.org
2022-01-04 9:54 ` rguenth at gcc dot gnu.org
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-12-13 13:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |https://gcc.gnu.org/bugzill
| |a/show_bug.cgi?id=25623
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
jump threading one was filed a long time ago as PR 25623.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (2 preceding siblings ...)
2021-12-13 13:56 ` pinskia at gcc dot gnu.org
@ 2022-01-04 9:54 ` rguenth at gcc dot gnu.org
2022-04-09 21:27 ` hubicka at gcc dot gnu.org
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-01-04 9:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
And for CFG cleanup there's no profile updating done when passes leave CFG
update to it by simplifying conditions to if (0) or if (1). One could argue
that
"late" simplifications simply make the guessed profile bogus - for feedback
profiles the cut paths should have zero count already.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (3 preceding siblings ...)
2022-01-04 9:54 ` rguenth at gcc dot gnu.org
@ 2022-04-09 21:27 ` hubicka at gcc dot gnu.org
2022-11-30 13:04 ` cvs-commit at gcc dot gnu.org
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2022-04-09 21:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #5 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The cfgcleanup logic is consistent assuming that your profile was consistent on
the input (i.e. read from profile feedback). If you
1) read profile
2) do optimization and prove that given if conditional is true
then you should also have 100% probability on the "true" edge so doing nothing
in cfgcleanup is correct.
Now of course what can happen is that you guess profile or
1) read profile
2) duplicate code
3) prove if conditonal always true in one of the copy.
In this case fixing up profile locally is not possible (since it is also wrong
in the other copy), so we opt doing nothing which keeps errors sort of
contained and we need to live that profile is somethimes inconsistent.
So cfgcleanup behaviour is by design.
However if you do threading there is way to update the profile and logic for
that iis n update_bb_profile_for_threading. If guessed profile was consistent
with the thread, it will update profile well and it will drop message to a dump
file otherwise.
Now the problem is that each time profiling code is updated the interface to
this function is lost. I tried to get it fixed but got lost in the new code.
/* An edge originally destinating BB of COUNT has been proved to
leave the block by TAKEN_EDGE. Update profile of BB such that edge E can be
redirected to destination of TAKEN_EDGE.
This function may leave the profile inconsistent in the case TAKEN_EDGE
frequency or count is believed to be lower than COUNT
respectively. */
void
update_bb_profile_for_threading (basic_block bb,
profile_count count, edge taken_edge)
So the interface is quite simple. I have to re-read the new updating code
since I no longer recall where I got lost, but perhaps if you are familiar with
it, you can write in the update?
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (4 preceding siblings ...)
2022-04-09 21:27 ` hubicka at gcc dot gnu.org
@ 2022-11-30 13:04 ` cvs-commit at gcc dot gnu.org
2023-06-28 9:16 ` hubicka at gcc dot gnu.org
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-11-30 13:04 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:
https://gcc.gnu.org/g:4fa25a7eb322f0a003c1eb15680c71ece345e01e
commit r13-4409-g4fa25a7eb322f0a003c1eb15680c71ece345e01e
Author: Martin Liska <mliska@suse.cz>
Date: Mon Jan 24 15:45:38 2022 +0100
Improve profile handling in switch lowering.
PR tree-optimization/101301
PR tree-optimization/103680
gcc/ChangeLog:
* tree-switch-conversion.cc (bit_test_cluster::emit):
Handle correctly remaining probability.
(switch_decision_tree::try_switch_expansion): Fix BB's count
where a cluster expansion happens.
(switch_decision_tree::emit_cmp_and_jump_insns): Fill up also
BB count.
(switch_decision_tree::do_jump_if_equal): Likewise.
(switch_decision_tree::emit_case_nodes): Handle special case
for BT expansion which can also fallback to a default BB.
* tree-switch-conversion.h (cluster::cluster): Add
m_default_prob probability.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (5 preceding siblings ...)
2022-11-30 13:04 ` cvs-commit at gcc dot gnu.org
@ 2023-06-28 9:16 ` hubicka at gcc dot gnu.org
2023-06-28 16:47 ` pinskia at gcc dot gnu.org
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2023-06-28 9:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2023-06-28
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
a simple testcase:
test (int i)
{
if (__builtin_expect_with_probability (i > 5, 1, 0.6))
foo ();
}
test2(int i)
{
test (i);
if (__builtin_expect_with_probability (i > 4, 1, 0.7))
foo ();
}
this is can be updated quite easily, but we still fail.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (6 preceding siblings ...)
2023-06-28 9:16 ` hubicka at gcc dot gnu.org
@ 2023-06-28 16:47 ` pinskia at gcc dot gnu.org
2023-06-28 21:30 ` hubicka at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-06-28 16:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Depends on| |25623
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #7)
> a simple testcase:
> test (int i)
> {
> if (__builtin_expect_with_probability (i > 5, 1, 0.6))
> foo ();
> }
> test2(int i)
> {
> test (i);
> if (__builtin_expect_with_probability (i > 4, 1, 0.7))
> foo ();
> }
> this is can be updated quite easily, but we still fail.
That is exactly bug 25623 comment #1.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25623
[Bug 25623] jump threading/cfg cleanup messes up "incoming counts" for some BBs
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (7 preceding siblings ...)
2023-06-28 16:47 ` pinskia at gcc dot gnu.org
@ 2023-06-28 21:30 ` hubicka at gcc dot gnu.org
2023-06-30 16:18 ` hubicka at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2023-06-28 21:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
bug 25623 comment #1 is different since __builtin_abort makes initial guessed
profile inconsistent with the correlated conditionals.
That is reason why I added explicit __builtin_expect_with_probability to make
the profile consistent. This is bug that got in after one of several threading
rewrites.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (8 preceding siblings ...)
2023-06-28 21:30 ` hubicka at gcc dot gnu.org
@ 2023-06-30 16:18 ` hubicka at gcc dot gnu.org
2023-06-30 16:22 ` hubicka at gcc dot gnu.org
2023-07-01 7:11 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2023-06-30 16:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
I am testing:
diff --git a/gcc/cfg.cc b/gcc/cfg.cc
index 897ef534ff5..defdf679f7b 100644
--- a/gcc/cfg.cc
+++ b/gcc/cfg.cc
@@ -922,7 +922,6 @@ update_bb_profile_for_threading (basic_block bb,
fprintf (dump_file, "bb %i count became negative after threading",
bb->index);
}
- bb->count -= count;
/* Compute the probability of TAKEN_EDGE being reached via threaded edge.
Watch for overflows. */
@@ -934,8 +933,8 @@ update_bb_profile_for_threading (basic_block bb,
{
if (dump_file)
{
- fprintf (dump_file, "Jump threading proved probability of edge "
- "%i->%i too small (it is ",
+ fprintf (dump_file, "Jump threading proved that the probability of
edge "
+ "%i->%i was originally estimated too small (it is ",
taken_edge->src->index, taken_edge->dest->index);
taken_edge->probability.dump (dump_file);
fprintf (dump_file, " should be ");
@@ -945,6 +944,8 @@ update_bb_profile_for_threading (basic_block bb,
prob = taken_edge->probability.apply_scale (6, 8);
}
+ bb->count -= count;
+
/* Now rescale the probabilities. */
taken_edge->probability -= prob;
prob = prob.invert ();
This fixes the trivial testcase in comment #9
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (9 preceding siblings ...)
2023-06-30 16:18 ` hubicka at gcc dot gnu.org
@ 2023-06-30 16:22 ` hubicka at gcc dot gnu.org
2023-07-01 7:11 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: hubicka at gcc dot gnu.org @ 2023-06-30 16:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #11 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
The following are passes affecting mismatches for tramp3d -O3 build:
107t cunrolli | 85 +77
110t forwprop | 87 +2
113t fre | 151 +64
115t threadfull | 474 +323
116t vrp | 379 -95
127t ch | 3106 +2729
130t thread | 3166 +60
131t dom | 3036 -130
159t cddce | 3146 +109
195t fre | 1232 +10
196t thread | 1259 +27
197t dom | 1249 -10
199t threadfull | 1275 +26
200t vrp | 1264 -11
211t cddce | 1264 +14
264r cprop | 1174 +13
275r loop2_unroll | 1180 +8
312r pro_and_epilogue | 1204 +21
315r jump2 | 1245 +41
So jump threading still produces mismatches, but I will need to look more if
these are really conflicting profiles or another updating bug.
Not sure what happens in ch.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug tree-optimization/103680] Jump threading and switch corrupts profile
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
` (10 preceding siblings ...)
2023-06-30 16:22 ` hubicka at gcc dot gnu.org
@ 2023-07-01 7:11 ` cvs-commit at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-07-01 7:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103680
--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jan Hubicka <hubicka@gcc.gnu.org>:
https://gcc.gnu.org/g:02460c0b8c9000359a09440f9532664a7835f158
commit r14-2228-g02460c0b8c9000359a09440f9532664a7835f158
Author: Jan Hubicka <jh@suse.cz>
Date: Sat Jul 1 09:09:39 2023 +0200
Fix update_bb_profile_for_threading
Fix profile some of profile mismatched caused by profile updating.
It seems that I misupdated update_bb_profile_for_threading in 2017 which
results in invalid updates from rtl threading and threadbackwards.
update_bb_profile_for_threading knows that some paths to BB are being
redirected elsehwere and those paths will exit from BB with E. So it needs
to
determine probability of the duplicated path and redistribute probablities.
For some reaosn however the conditonal probability of redirected path is
computed after its counts is subtracted which is wrong and often results in
probability greater than 100%.
I also fixed error mesage. Compilling tramp3d I now get following passes
producing mismpatches:
Pass dump id and name |static mismatcdynamic mismatch
|in count |in count
113t fre | 2 +2| 0
114t mergephi | 2 | 0
115t threadfull | 2 | 0
116t vrp | 2 | 0
127t ch | 307 +305| 347194302 +347194302
130t thread | 313 +6| 347221478 +27176
131t dom | 321 +8| 346841121 -380357
134t reassoc | 323 +2| 346841121
136t forwprop | 327 +4| 347026371 +185250
144t pre | 326 -1| 347040926 +14555
172t ifcvt | 338 +2| 347218249 +156280
173t vect | 409 +71| 356357418 +9139169
176t cunroll | 377 -32| 126071925 -230285493
183t loopdone | 376 -1| 126015489 -56436
194t tracer | 379 +3| 127258199 +1242710
197t dom | 375 -4| 128352165 +1093966
199t threadfull | 379 +4| 128526112 +173947
200t vrp | 381 +2| 128724673 +198561
204t dce | 374 -7| 128632495 -92178
206t sink | 370 -4| 128618043 -14452
211t cddce | 372 +2| 128632495 +14452
248t ehcleanup | 370 -2| 128618755 -13740
255t optimized | 362 -8| 128576810 -41945
256r expand | 356 -6| 128899768 +322958
258r into_cfglayout | 353 -3| 129051765 +151997
259r jump | 354 +1| 129051765
262r cse1 | 353 -1| 129051765
275r loop2_unroll | 355 +2| 132182110 +3130345
277r loop2_done | 354 -1| 132182109 -1
312r pro_and_epilogue | 371 +17| 132222324 +40215
323r bbro | 375 +4| 132095926 -126398
Without the patch at jump2 time we get over 432 mismatches, so 15%
improvement. Some of the mismathces are unavoidable.
I think ch mismatches are mostly due to loop header copying where the
header
condition constant propagates. Most common case should be threadable in
early
optimizations and we also could do better on profile updating here.
Bootstrapped/regtested x6_64-linux, comitted.
gcc/ChangeLog:
PR tree-optimization/103680
* cfg.cc (update_bb_profile_for_threading): Fix profile update;
make message clearer.
gcc/testsuite/ChangeLog:
PR tree-optimization/103680
* gcc.dg/tree-ssa/pr103680.c: New test.
* gcc.dg/tree-prof/cmpsf-1.c: Un-xfail.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-07-01 7:11 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-13 10:51 [Bug tree-optimization/103680] New: Jump threading and switch corrupts profile hubicka at gcc dot gnu.org
2021-12-13 10:55 ` [Bug tree-optimization/103680] " hubicka at gcc dot gnu.org
2021-12-13 12:26 ` marxin at gcc dot gnu.org
2021-12-13 13:56 ` pinskia at gcc dot gnu.org
2022-01-04 9:54 ` rguenth at gcc dot gnu.org
2022-04-09 21:27 ` hubicka at gcc dot gnu.org
2022-11-30 13:04 ` cvs-commit at gcc dot gnu.org
2023-06-28 9:16 ` hubicka at gcc dot gnu.org
2023-06-28 16:47 ` pinskia at gcc dot gnu.org
2023-06-28 21:30 ` hubicka at gcc dot gnu.org
2023-06-30 16:18 ` hubicka at gcc dot gnu.org
2023-06-30 16:22 ` hubicka at gcc dot gnu.org
2023-07-01 7:11 ` cvs-commit at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).