This patch "fixes" a regression on trunk and the 4.8 branch: Running /tmp/hpautotest-gcc48/gcc/gcc/testsuite/gcc.dg/dg.exp ... ... FAIL: gcc.dg/pr46309.c scan-tree-dump-times reassoc2 "Optimizing range tests [^\r\n]*_[0-9]* -.0, 31. and -.128, 159.[\n\r]* into" 1
The comment in the test seen in the context indicates that it depends on BRANCH_COST > 1. As all cris*-*-* have BRANCH_COST 1 (with no option that set it higher), the only reasonable option seems to skip the test. A FAIL for this test seems only also noticed for MIPS, AVR and s390; the test sets options to change branch-cost to 2 for those targets (IMHO unconventional to have an option exactly for this purpose) in the lines below the patch context. That the test has ever PASSed thus seemed weird so I looked in my logs. The test hasn't always passed for CRIS: it started passing on trunk at (193019:193029] (before the 4.8 branch; 2012-10-31) which includes a commit with a follow-up for PR46309 with more test-coverage (without BRANCH_COST notes). The test-case gcc.dg/pr46309.c was not touched at that time and any PASS effect for targets with BRANCH_COST=1 seems only incidental. It started failing for trunk at (206454:206460] and on 4.8-branch at (206507:206513] whose intersection has: +2014-01-09 Richard Biener <rguent...@suse.de> + + PR tree-optimization/59715 + * tree-cfg.h (split_critical_edges): Declare. + * tree-cfg.c (split_critical_edges): Export. + * tree-ssa-sink.c (execute_sink_code): Split critical edges. + and the effect of the test failing seems as incidental as when it started to pass. BTW, I verified that setting BRANCH_COST to 2 indeed makes the test pass for cris-elf, which of course by itself is not an acceptable fix. I know there's a redundant {} level there, but it won't be redundant if adding targets to that list, still if there are more tests like this maybe it's worthwhile to consider adding an effective-target branch_cost_gt_1 or something. gcc/testsuite: * gcc.dg/pr46309.c: Disable for cris*-*-*. Index: gcc/testsuite/gcc.dg/pr46309.c =================================================================== --- gcc/testsuite/gcc.dg/pr46309.c (revision 206534) +++ gcc/testsuite/gcc.dg/pr46309.c (working copy) @@ -1,5 +1,5 @@ /* PR tree-optimization/46309 */ -/* { dg-do compile } */ +/* { dg-do compile { target { ! { cris*-*-* } } } } */ /* { dg-options "-O2 -fdump-tree-reassoc-details" } */ /* The transformation depends on BRANCH_COST being greater than 1 (see the notes in the PR), so try to force that. */ Anyway, enough with the commentary, committed to trunk and 4.8-branch. brgds, H-P