> Am 04.09.2024 um 04:00 schrieb Andrew Pinski <quic_apin...@quicinc.com>:
> 
> While trying to understand PR 115910 I found it was useful to print out
> the two costs of doing a signed and unsigned division just like was added in
> r15-3272-g3c89c41991d8e8 for popcount==1.
> 
> Bootstrapped and tested on x86_64-linux-gnu.

Ok

> gcc/ChangeLog:
> 
>    * expr.cc (expand_expr_divmod): Add dump of the two costs for
>    positive division.
> 
> Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>
> ---
> gcc/expr.cc | 7 +++++++
> 1 file changed, 7 insertions(+)
> 
> diff --git a/gcc/expr.cc b/gcc/expr.cc
> index 320be8b17a1..7a471f20e79 100644
> --- a/gcc/expr.cc
> +++ b/gcc/expr.cc
> @@ -9648,6 +9648,7 @@ expand_expr_divmod (tree_code code, machine_mode mode, 
> tree treeop0,
>       end_sequence ();
>       unsigned uns_cost = seq_cost (uns_insns, speed_p);
>       unsigned sgn_cost = seq_cost (sgn_insns, speed_p);
> +      bool was_tie = false;
> 
>       /* If costs are the same then use as tie breaker the other other
>     factor.  */
> @@ -9655,8 +9656,14 @@ expand_expr_divmod (tree_code code, machine_mode mode, 
> tree treeop0,
>    {
>      uns_cost = seq_cost (uns_insns, !speed_p);
>      sgn_cost = seq_cost (sgn_insns, !speed_p);
> +      was_tie = true;
>    }
> 
> +      if (dump_file && (dump_flags & TDF_DETAILS))
> +      fprintf(dump_file, "positive division:%s unsigned cost: %u; "
> +          "signed cost: %u\n", was_tie ? "(needed tie breaker)":"",
> +          uns_cost, sgn_cost);
> +
>       if (uns_cost < sgn_cost || (uns_cost == sgn_cost && unsignedp))
>    {
>      emit_insn (uns_insns);
> --
> 2.43.0
> 

Reply via email to