https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85368

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Ah, arm ignores the BRANCH_COST altogether:
#define LOGICAL_OP_NON_SHORT_CIRCUIT                                    \
  ((optimize_size)                                                      \
   ? (TARGET_THUMB ? false : true)                                      \
   : TARGET_THUMB ? static_cast<bool>
(current_tune->logical_op_non_short_circuit_thumb) \
   : static_cast<bool> (current_tune->logical_op_non_short_circuit_arm))

I'd say we should throw away logical_op_non_short_circuit, branch_cost,
-mbranch-cost= from all the generic tests, and perhaps introduce --param
logical_op_non_short_circuit, which if set would override the target decision,
either to 0 or to 1, with the default of using the target macro.
Param rather than option to make it clear we can nuke it when we change the
early gimplification to ignore such decision and have some much later pass that
would adjust tests.

Reply via email to