Hey.

I'm debugging PR96482 and it would be handy for me to have a debug counter
for the problematic transformation.

Ready for master?
Thanks,
Martin

gcc/ChangeLog:

        * dbgcnt.def (DEBUG_COUNTER): Add ipa_cp_bits.
        * ipa-cp.c (ipcp_store_bits_results): Use it when we store known
        bits for parameters.
---
 gcc/dbgcnt.def |  1 +
 gcc/ipa-cp.c   | 11 ++++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 3998c9636aa..cf8775b2b66 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -170,6 +170,7 @@ DEBUG_COUNTER (if_after_combine)
 DEBUG_COUNTER (if_after_reload)
 DEBUG_COUNTER (if_conversion)
 DEBUG_COUNTER (if_conversion_tree)
+DEBUG_COUNTER (ipa_cp_bits)
 DEBUG_COUNTER (ipa_sra_params)
 DEBUG_COUNTER (ipa_sra_retvalues)
 DEBUG_COUNTER (ira_move)
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 10cc59509d5..945a69977f3 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -123,6 +123,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-ccp.h"
 #include "stringpool.h"
 #include "attribs.h"
+#include "dbgcnt.h"
template <typename valtype> class ipcp_value; @@ -5788,9 +5789,13 @@ ipcp_store_bits_results (void)
          ipa_bits *jfbits;
if (plats->bits_lattice.constant_p ())
-           jfbits
-             = ipa_get_ipa_bits_for_value (plats->bits_lattice.get_value (),
-                                           plats->bits_lattice.get_mask ());
+           {
+             jfbits
+               = ipa_get_ipa_bits_for_value (plats->bits_lattice.get_value (),
+                                             plats->bits_lattice.get_mask ());
+             if (!dbg_cnt (ipa_cp_bits))
+               jfbits = NULL;
+           }
          else
            jfbits = NULL;
--
2.28.0

Reply via email to