public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-3906] math-opts: Add dbgcounter for FMA formation
@ 2023-09-12 17:23 Martin Jambor
  0 siblings, 0 replies; only message in thread
From: Martin Jambor @ 2023-09-12 17:23 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:27e2e7c93e48bcbb63877cc5964fae8dba47d706

commit r14-3906-g27e2e7c93e48bcbb63877cc5964fae8dba47d706
Author: Martin Jambor <mjambor@suse.cz>
Date:   Tue Sep 12 19:22:37 2023 +0200

    math-opts: Add dbgcounter for FMA formation
    
    This patch is a simple addition of a debug counter to FMA formation in
    tree-ssa-math-opts.cc.  Given that issues with FMAs do occasionally
    pop up, it seems genuinely useful.
    
    I simply added an if right after the initial checks in
    convert_mult_to_fma even though when FMA formation deferring is
    active (i.e. when targeting Zen CPUs) this would interact with it (and
    at this moment lead to producing all deferred candidates), so when
    using the dbg counter to find a harmful set of FMAs, it is probably
    best to also set param_avoid_fma_max_bits to zero.  I could not find a
    better place which would not also make the code unnecessarily more
    complicated.
    
    gcc/ChangeLog:
    
    2023-09-06  Martin Jambor  <mjambor@suse.cz>
    
            * dbgcnt.def (form_fma): New.
            * tree-ssa-math-opts.cc: Include dbgcnt.h.
            (convert_mult_to_fma): Bail out if the debug counter say so.

Diff:
---
 gcc/dbgcnt.def            | 1 +
 gcc/tree-ssa-math-opts.cc | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 9e2f1d857b49..871cbf75d931 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -162,6 +162,7 @@ DEBUG_COUNTER (dom_unreachable_edges)
 DEBUG_COUNTER (dse)
 DEBUG_COUNTER (dse1)
 DEBUG_COUNTER (dse2)
+DEBUG_COUNTER (form_fma)
 DEBUG_COUNTER (gcse2_delete)
 DEBUG_COUNTER (gimple_unroll)
 DEBUG_COUNTER (global_alloc_at_func)
diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc
index 95c22694368c..3db69ad5733c 100644
--- a/gcc/tree-ssa-math-opts.cc
+++ b/gcc/tree-ssa-math-opts.cc
@@ -116,6 +116,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "targhooks.h"
 #include "domwalk.h"
 #include "tree-ssa-math-opts.h"
+#include "dbgcnt.h"
 
 /* This structure represents one basic block that either computes a
    division, or is a common dominator for basic block that compute a
@@ -3366,6 +3367,9 @@ convert_mult_to_fma (gimple *mul_stmt, tree op1, tree op2,
       && !has_single_use (mul_result))
     return false;
 
+  if (!dbg_cnt (form_fma))
+    return false;
+
   /* Make sure that the multiplication statement becomes dead after
      the transformation, thus that all uses are transformed to FMAs.
      This means we assume that an FMA operation has the same cost

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-09-12 17:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-12 17:23 [gcc r14-3906] math-opts: Add dbgcounter for FMA formation Martin Jambor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).