This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

New debug counter for unreachable edges found in DOM



I used this recently to help reduce an aarch64 bug. No sense in not pushing it into the trunk.

Bootstrapped and regression tested on x86_64-linux-gnu. It may have been in an aarch64 bootstrap as well, I'm not entirely sure about that.

Installed on the trunk.

Jeff
commit e9cce2b6bb65ddfcb99b32924f58e49b99ba2984
Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Tue Dec 22 03:09:08 2015 +0000

    	* dbgcnt.def (dom_unreachable_edges): New debug counter.
    	* tree-ssa-dom.c: Include dbgcnt.h
    	(dom_opt_dom_walker::before_dom_children): Handle the new counter.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231896 138bc75d-0d04-0410-961f-82ee72b054a4

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f1f1d69..9e3ab5a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-12-21  Jeff Law  <law@redhat.com>
+
+	* dbgcnt.def (dom_unreachable_edges): New debug counter.
+	* tree-ssa-dom.c: Include dbgcnt.h
+	(dom_opt_dom_walker::before_dom_children): Handle the new counter.
+
 2015-12-21  Andrew Pinski <apinski@cavium.com>
 
 	* config/aarch64/aarch64-option-extensions.def (LSE): Change
diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 583b16b..65f18fb 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -192,3 +192,4 @@ DEBUG_COUNTER (treepre_insert)
 DEBUG_COUNTER (tree_sra)
 DEBUG_COUNTER (vect_loop)
 DEBUG_COUNTER (vect_slp)
+DEBUG_COUNTER (dom_unreachable_edges)
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 88fc517..1b689a0 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -44,6 +44,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-dom.h"
 #include "gimplify.h"
 #include "tree-cfgcleanup.h"
+#include "dbgcnt.h"
 
 /* This file implements optimizations on the dominator tree.  */
 
@@ -1369,6 +1370,9 @@ dom_opt_dom_walker::before_dom_children (basic_block bb)
   /* Now prepare to process dominated blocks.  */
   record_edge_info (bb);
   cprop_into_successor_phis (bb, m_const_and_copies);
+  if (taken_edge && !dbg_cnt (dom_unreachable_edges))
+    return NULL;
+
   return taken_edge;
 }
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]