Hi.

We already have a IPA modref debug counter, but it's only used in 
tree-ssa-alias,
which is only a part of what IPA modref does. I used the dbg counter in 
isolation
of PR101949.

Ready for master?

gcc/ChangeLog:

        * dbgcnt.def (DEBUG_COUNTER): New counter.
        * gimple.c (gimple_call_arg_flags): Use it in IPA PTA.
---
 gcc/dbgcnt.def | 1 +
 gcc/gimple.c   | 5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 2345899ba68..c2bcc4eef5e 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -175,6 +175,7 @@ DEBUG_COUNTER (ipa_cp_bits)
 DEBUG_COUNTER (ipa_cp_values)
 DEBUG_COUNTER (ipa_cp_vr)
 DEBUG_COUNTER (ipa_mod_ref)
+DEBUG_COUNTER (ipa_mod_ref_pta)
 DEBUG_COUNTER (ipa_sra_params)
 DEBUG_COUNTER (ipa_sra_retvalues)
 DEBUG_COUNTER (ira_move)
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 4e2653cab2f..bed7ff9e71c 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -48,7 +48,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "attr-fnspec.h"
 #include "ipa-modref-tree.h"
 #include "ipa-modref.h"
-
+#include "dbgcnt.h"
/* All the tuples have their operand vector (if present) at the very bottom
    of the structure.  Therefore, the offset required to find the
@@ -1601,7 +1601,8 @@ gimple_call_arg_flags (const gcall *stmt, unsigned arg)
              if ((modref_flags & EAF_DIRECT) && !(flags & EAF_DIRECT))
                modref_flags &= ~EAF_DIRECT;
            }
-         flags |= modref_flags;
+         if (dbg_cnt (ipa_mod_ref_pta))
+           flags |= modref_flags;
        }
     }
   return flags;
--
2.32.0

Reply via email to