While helping Eikansh with a patch to ccmp, it was noticed that the result stored in the up pointer that gets passed to get_compare_parts was unused on all call sites. It was always unused since get_compare_parts was added in r8-1717-gf580a969d7fbab. It looks it was not noticed it became unused when rcode was set via get_compare_parts and in RTL, the signedness is part of the comparison.
PR middle-end/118090 gcc/ChangeLog: * ccmp.cc (get_compare_parts): Remove the up argument. (expand_ccmp_next): Update call to get_compare_parts. (expand_ccmp_expr_1): Likewise. Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> --- gcc/ccmp.cc | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/gcc/ccmp.cc b/gcc/ccmp.cc index 67efe7d4f5a..e49bafa85c5 100644 --- a/gcc/ccmp.cc +++ b/gcc/ccmp.cc @@ -133,23 +133,22 @@ ccmp_candidate_p (gimple *g, bool outer = false) /* Extract the comparison we want to do from the tree. */ void -get_compare_parts (tree t, int *up, rtx_code *rcode, +get_compare_parts (tree t, rtx_code *rcode, tree *rhs1, tree *rhs2) { tree_code code; gimple *g = get_gimple_for_ssa_name (t); if (g && is_gimple_assign (g)) { - *up = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (g))); + int up = TYPE_UNSIGNED (TREE_TYPE (gimple_assign_rhs1 (g))); code = gimple_assign_rhs_code (g); - *rcode = get_rtx_code (code, *up); + *rcode = get_rtx_code (code, up); *rhs1 = gimple_assign_rhs1 (g); *rhs2 = gimple_assign_rhs2 (g); } else { /* If g is not a comparison operator create a compare to zero. */ - *up = 1; *rcode = NE; *rhs1 = t; *rhs2 = build_zero_cst (TREE_TYPE (t)); @@ -167,10 +166,9 @@ expand_ccmp_next (tree op, tree_code code, rtx prev, rtx_insn **prep_seq, rtx_insn **gen_seq) { rtx_code rcode; - int unsignedp; tree rhs1, rhs2; - get_compare_parts(op, &unsignedp, &rcode, &rhs1, &rhs2); + get_compare_parts (op, &rcode, &rhs1, &rhs2); return targetm.gen_ccmp_next (prep_seq, gen_seq, prev, rcode, rhs1, rhs2, get_rtx_code (code, 0)); } @@ -204,7 +202,6 @@ expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq) { if (ccmp_tree_comparison_p (op1, bb)) { - int unsignedp0, unsignedp1; rtx_code rcode0, rcode1; tree logical_op0_rhs1, logical_op0_rhs2; tree logical_op1_rhs1, logical_op1_rhs2; @@ -214,10 +211,10 @@ expand_ccmp_expr_1 (gimple *g, rtx_insn **prep_seq, rtx_insn **gen_seq) unsigned cost1 = MAX_COST; unsigned cost2 = MAX_COST; - get_compare_parts (op0, &unsignedp0, &rcode0, + get_compare_parts (op0, &rcode0, &logical_op0_rhs1, &logical_op0_rhs2); - get_compare_parts (op1, &unsignedp1, &rcode1, + get_compare_parts (op1, &rcode1, &logical_op1_rhs1, &logical_op1_rhs2); rtx_insn *prep_seq_1, *gen_seq_1; -- 2.43.0