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