On Mon, Jul 14, 2025 at 11:00 PM Andrew Pinski <quic_apin...@quicinc.com> wrote:
>
> This is a small compile time optimization, as match and simplify will generate
> the same thing but with rhs and lhs being the same we can return early instead
> of having to go through match and simplify. This might not show up that much
> at this point but can/will show up after my patch for PR 119920 where we 
> factor
> out common code between the 2 sides of the if statement while in if-conv.
>
> Bootstrapped and tested on x86_64-linux-gnu.

OK.

> gcc/ChangeLog:
>
>         * tree-if-conv.cc (fold_build_cond_expr): Return early if lhs and rhs
>         are the same.
>
> Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>
> ---
>  gcc/tree-if-conv.cc | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/gcc/tree-if-conv.cc b/gcc/tree-if-conv.cc
> index d2b9f9fe080..366e959fd77 100644
> --- a/gcc/tree-if-conv.cc
> +++ b/gcc/tree-if-conv.cc
> @@ -494,6 +494,10 @@ fold_or_predicates (location_t loc, tree c1, tree c2)
>  static tree
>  fold_build_cond_expr (tree type, tree cond, tree rhs, tree lhs)
>  {
> +  /* Short cut the case where both rhs and lhs are the same. */
> +  if (operand_equal_p (rhs, lhs))
> +    return rhs;
> +
>    /* If COND is comparison r != 0 and r has boolean type, convert COND
>       to SSA_NAME to accept by vect bool pattern.  */
>    if (TREE_CODE (cond) == NE_EXPR)
> --
> 2.43.0
>

Reply via email to