From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp1.axis.com (smtp1.axis.com [195.60.68.17]) by sourceware.org (Postfix) with ESMTPS id 12CFE385843D for ; Tue, 14 Feb 2023 02:33:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 12CFE385843D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=axis.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=axis.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1676342030; x=1707878030; h=from:to:subject:mime-version:content-transfer-encoding: message-id:date; bh=HkKq02ReNJQaFQk+rSTwmlkfeJNroX5o51i+418kwnQ=; b=kBydxWUk3znu8SRP518kY2rFo5p6Jvlv0rFwIffJZdupD3WKhPDuebSH RealEvZVJGM07y94+3vQo5ts4OmBRTWAmU6YRJtScA6aYW4cqYQhGxu4u AkzPbBov5w6wC2qKaMWvY992bY6fKZqS17zR8Z+v1jNOOdIZsNiSgzJhz 5UmzJt9reJMwOXIm+vU+XoJWFFEJVNEoHB0HJJ3tH1N/SrQOuSuAvO0Xg mjwRM0ZNpARap0/XgwkKUmsDTUemL7vgUW+kAf2xVwySnpds11kDzCrHK l9ZzmSOoKa4I7Bpit6OxJsgmVYHXV1AIL1CZ+QS6JS4nabuosn/Jq5QuW g==; From: Hans-Peter Nilsson To: Subject: [PATCH] debug: Support "phrs" for dumping a HARD_REG_SET MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8BIT Message-ID: <20230214023346.2A85B20423@pchp3.se.axis.com> Date: Tue, 14 Feb 2023 03:33:46 +0100 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Ok to commit? It survived both a cris-elf regtest and a x86_64-linux-gnu native regtest. :) ---- 8< ---- The debug-function in sel-sched-dump.cc that would be suitable for a hookup to a command in gdb is guarded by #ifdef INSN_SCHEDULING, thus can't be used for all targets. Better move the function marked DEBUG_FUNCTION elsewhere, here to a file with a suitable static function to call. There are multiple sets of similar functions dumping HARD_REG_SETs, but cleaning that up is better left to a separate commit. gcc: * gdbinit.in (phrs): New command. * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function. * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set. --- gcc/gdbinit.in | 12 ++++++++++++ gcc/ira-color.cc | 7 +++++++ gcc/sel-sched-dump.cc | 10 ---------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/gcc/gdbinit.in b/gcc/gdbinit.in index 1f7592b0e26a..a76079a46af7 100644 --- a/gcc/gdbinit.in +++ b/gcc/gdbinit.in @@ -31,6 +31,7 @@ GCC gdbinit file introduces several debugging shorthands: pdd [dw_die_ref], pbm [bitmap], pel [location_t], + phrs [HARD_REG_SET] pp, pbs, pcfun They are generally implemented by calling a function that prints to stderr, @@ -145,6 +146,17 @@ Print given GENERIC expression in C syntax. See also 'help-gcc-hooks'. end +define phrs +eval "set $debug_arg = $%s", $argc ? "arg0" : "" +call debug_hard_reg_set ($debug_arg) +end + +document phrs +GCC hook: debug_hard_reg_set (HARD_REG_SET) +Print given HARD_REG_SET. +See also 'help-gcc-hooks'. +end + define pmz eval "set $debug_arg = $%s", $argc ? "arg0" : "" call mpz_out_str(stderr, 10, $debug_arg) diff --git a/gcc/ira-color.cc b/gcc/ira-color.cc index fe6dfc6e7692..1fb2958bddd0 100644 --- a/gcc/ira-color.cc +++ b/gcc/ira-color.cc @@ -512,6 +512,13 @@ print_hard_reg_set (FILE *f, HARD_REG_SET set, bool new_line_p) fprintf (f, "\n"); } +/* Dump a hard reg set SET to stderr. */ +DEBUG_FUNCTION void +debug_hard_reg_set (HARD_REG_SET set) +{ + print_hard_reg_set (stderr, set, true); +} + /* Print allocno hard register subforest given by ROOTS and its LEVEL to F. */ static void diff --git a/gcc/sel-sched-dump.cc b/gcc/sel-sched-dump.cc index b4eef8803df9..05de98409375 100644 --- a/gcc/sel-sched-dump.cc +++ b/gcc/sel-sched-dump.cc @@ -986,16 +986,6 @@ debug_blist (blist_t bnds) restore_dump (); } -/* Dump a hard reg set SET to stderr. */ -DEBUG_FUNCTION void -debug_hard_reg_set (HARD_REG_SET set) -{ - switch_dump (stderr); - dump_hard_reg_set ("", set); - sel_print ("\n"); - restore_dump (); -} - /* Debug a cfg region with default flags. */ void sel_debug_cfg (void) -- 2.30.2