]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
expr: Fix up the divmod cost debugging note [PR115910]
authorJakub Jelinek <jakub@redhat.com>
Mon, 13 Jan 2025 12:57:18 +0000 (13:57 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 13 Jan 2025 12:57:18 +0000 (13:57 +0100)
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

index 07fc85712e6b9e03f6080b9c99b6447277b1d06f..a310b2d913154efed7eb90f3c57fdbedea118a18 100644 (file)
@@ -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))
        {