]> git.ipfire.org Git - thirdparty/gcc.git/commit
testsuite: Force max-completely-peeled-insns=300 for CRIS, PR118055
authorHans-Peter Nilsson <hp@axis.com>
Mon, 16 Dec 2024 17:47:03 +0000 (18:47 +0100)
committerHans-Peter Nilsson <hp@bitrange.com>
Mon, 16 Dec 2024 18:10:19 +0000 (19:10 +0100)
commite5c84fd3c195eb5e553fde84e79dd83712edf732
tree2a499e081041261699920a913d27aa604dc0119f
parent7f4f49687b1f1b7aed0d6626b24f214e8a800439
testsuite: Force max-completely-peeled-insns=300 for CRIS, PR118055

This handles fallout from r15-6097-gee2f19b0937b5e.  A brief
analysis shows that the metric used in that code is computed
by estimate_move_cost, differentiating on the target macro
MOVE_MAX_PIECES (which defaults to MOVE_MAX) which for most
"32-bit targets" is 4 and for "64-bit targets" is 8.  There
are some outliers, like pru, with MOVE_MAX set to 8 but
counting as a 32-bit target.

So, the main difference for this test-case, which is heavy
on 64-bit moves (most targets have "double" mapped to IEEE
64-bit), is between "32-bit" and "64-bit", with the cost up
to twice for the former compared to the latter.  I see no
effective_target_move_max_is_4 or equivalent, and this
instance falls below the threshold of adding one, so I'm
sticking to a list of targets.  For CRIS, it would suffice
with 210, but there's no need to be this specific, and it
would make the test even more brittle.

PR tree-optimization/118055
* gcc.dg/tree-ssa/pr83403-1.c, gcc.dg/tree-ssa/pr83403-2.c: Add
cris-*-* to targets passing --param=max-completely-peeled-insns=300.
gcc/testsuite/gcc.dg/tree-ssa/pr83403-1.c
gcc/testsuite/gcc.dg/tree-ssa/pr83403-2.c