On Thu, 05 Sep 2024 11:52:57 PDT (-0700), Palmer Dabbelt wrote:
We have cheap logical ops, so let's just move this back to the default
to take advantage of the standard branch/op hueristics.
gcc/ChangeLog:
PR target/116615
* config/riscv/riscv.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove.
---
There's a bunch more discussion in the bug, but it's starting to smell
like this was just a holdover from MIPS (where maybe it also shouldn't
be set). I haven't tested this, but I figured I'd send the patch to get
a little more visibility.
I guess we should also kick off something like a SPEC run to make sure
there's no regressions?
Sorry I missed it in the bug, but Ruoyao points to dddafe94823
("LoongArch: Define LOGICAL_OP_NON_SHORT_CIRCUIT") where
short-circuiting the FP comparisons helps on LoongArch.
Not sure if I'm also missing something here, but it kind of feels like
that should be handled by a more generic optimization decision that just
globally "should we short circuit logical ops" -- assuming it really is
the FP comparisons that are causing the cost, as opposed to the actual
logical ops themselves.
Probably best to actually run the benchmarks, though...
---
gcc/config/riscv/riscv.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
index ead97867eb8..a0ccd1fc762 100644
--- a/gcc/config/riscv/riscv.h
+++ b/gcc/config/riscv/riscv.h
@@ -939,8 +939,6 @@ extern enum riscv_cc get_riscv_cc (const rtx use);
#define TARGET_VECTOR_MISALIGN_SUPPORTED \
riscv_vector_unaligned_access_p
-#define LOGICAL_OP_NON_SHORT_CIRCUIT 0
-
/* Control the assembler format that we output. */
/* Output to assembler file text saying following lines