Richi? Thanks
On 06/30/2017 03:48 PM, Martin Liška wrote: > On 06/22/2017 12:27 PM, Richard Biener wrote: >> On Wed, Jun 21, 2017 at 3:06 PM, Martin Liška <mli...@suse.cz> wrote: >>> Hello. >>> >>> There's one additional predictor enhancement that is GOTO predict that >>> used to working. Following patch adds expect statement for C and C++ family >>> languages. >>> >>> There's one fallout which is vrp24.c test-case, where only 'Simplified >>> relational' >>> appears just once. Adding Richi and Patrick who can probably help how to >>> fix the >>> test-case. >> >> Happens to be optimized better now, there's only one predicate to simplify >> left in the IL input to VRP1. I suggest to change it to match 1 times and >> add >> -fdump-tree-optimized to dg-options and >> >> /* { dg-final { scan-tree-dump-times "if " 3 "optimized" } } */ >> >> to verify we have 3 conditions left. > > One small note, I see 4 conditions in optimized dump: > > sss (struct rtx_def * insn, int code1, int code2, int code3) > { > int D1544; > struct rtx_def * body; > _Bool D1562; > > <bb 2> [100.00%] [count: INV]: > body_5 = insn_4(D)->u.fld[5].rt_rtx; > D1544_6 = body_5->code; > if (D1544_6 == 55) > goto <bb 7> (L7); [34.00%] [count: INV] > else > goto <bb 3>; [66.00%] [count: INV] > > <bb 3> [66.00%] [count: INV]: > if (code3_7(D) == 99) > goto <bb 4>; [34.00%] [count: INV] > else > goto <bb 8> (L16); [66.00%] [count: INV] > > <bb 4> [22.44%] [count: INV]: > D1562_9 = code1_8(D) == 10; > if (D1562_9 == 1) > goto <bb 7> (L7); [64.00%] [count: INV] > else > goto <bb 8> (L16); [36.00%] [count: INV] > > <bb 5> [9.82%] [count: INV]: > arf (); > > <bb 6> [46.68%] [count: INV]: > frob (); [tail call] > goto <bb 8> (L16); [100.00%] [count: INV] > > L7 [48.36%] [count: INV]: > if (code2_12(D) == 42) > goto <bb 5>; [20.24%] [count: INV] > else > goto <bb 6>; [79.76%] [count: INV] > > L16 [100.00%] [count: INV]: > return; > > } > > Is it a problem or adjusting to 4 is fine? > > Martin > >> >>> Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. >>> >>> Ready to be installed? >>> Martin >