From 41a5a97dba6873d928675fd789a2d884c6d20a8d Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Mon, 13 Jan 2025 13:57:18 +0100
Subject: [PATCH] expr: Fix up the divmod cost debugging note [PR115910]

Something I've noticed during working on the crc wrong-code fix.
My first version of the patch failed because of no longer matching some
expected strings in the assembly, so I had to add TDF_DETAILS debugging
into the -fdump-rtl-expand-details dump which the crc tests can use.

For PR115910 Andrew has added similar note for the division/modulo case
if it is positive and we can choose either unsigned or signed
division.  The problem is that unlike most other TDF_DETAILS diagnostics,
this is not done before emitting the IL for the function, but during it.

Other messages there are prefixed with ;;, both details on what it is doing
and the GIMPLE IL for which it expands RTL, so the
;; Generating RTL for gimple basic block 4

;;

(code_label 13 12 14 2 (nil) [0 uses])

(note 14 13 0 NOTE_INSN_BASIC_BLOCK)
positive division: unsigned cost: 30; signed cost: 28

;; return _4;

message in between just looks weird and IMHO should be ;; prefixed.

2025-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/115910
	* expr.cc (expand_expr_divmod): Prefix the TDF_DETAILS note with
	";; " and add a space before (needed tie breaker).  Formatting fixes.
---
 gcc/expr.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/expr.cc b/gcc/expr.cc
index 07fc85712e6b..a310b2d91315 100644
--- a/gcc/expr.cc
+++ b/gcc/expr.cc
@@ -9710,9 +9710,9 @@ expand_expr_divmod (tree_code code, machine_mode mode, tree treeop0,
 	}
 
       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);
+	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))
 	{
-- 
GitLab