From: Andrew Pinski Date: Wed, 30 Apr 2025 19:56:13 +0000 (-0700) Subject: phiopt: Remove special case for a sequence after match and simplify for early phiopt X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbc96c9c09921ca7d59564851d0ed6dcd918c300;p=thirdparty%2Fgcc.git phiopt: Remove special case for a sequence after match and simplify for early phiopt r16-189-g99aa410f5e0a72 fixed the case where match-and-simplify there was an extra assignment happening inside the sequence return. phiopt_early_allow had code to workaround that issue but now can be removed and simplify down to only allowing the sequence having only one MIN/MAX if the outer code is MIN/MAX also. Bootstrapped and tested on x86_64-linux-gnu. gcc/ChangeLog: * tree-ssa-phiopt.cc (phiopt_early_allow): Only allow a sequence with one statement for MIN/MAX and the op was MIN/MAX. Signed-off-by: Andrew Pinski --- diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index e27166c55a5..54ecd93495a 100644 --- a/gcc/tree-ssa-phiopt.cc +++ b/gcc/tree-ssa-phiopt.cc @@ -549,8 +549,7 @@ phiopt_early_allow (gimple_seq &seq, gimple_match_op &op) tree_code code = (tree_code)op.code; /* For non-empty sequence, only allow one statement - except for MIN/MAX, allow max 2 statements, - each with MIN/MAX. */ + a MIN/MAX and an original MIN/MAX. */ if (!gimple_seq_empty_p (seq)) { if (code == MIN_EXPR || code == MAX_EXPR) @@ -565,18 +564,7 @@ phiopt_early_allow (gimple_seq &seq, gimple_match_op &op) code = gimple_assign_rhs_code (stmt); return code == MIN_EXPR || code == MAX_EXPR; } - /* Check to make sure op was already a SSA_NAME. */ - if (code != SSA_NAME) - return false; - if (!gimple_seq_singleton_p (seq)) - return false; - gimple *stmt = gimple_seq_first_stmt (seq); - /* Only allow assignments. */ - if (!is_gimple_assign (stmt)) - return false; - if (gimple_assign_lhs (stmt) != op.ops[0]) - return false; - code = gimple_assign_rhs_code (stmt); + return false; } switch (code)