This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
New debug counter for unreachable edges found in DOM
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 21 Dec 2015 20:10:47 -0700
- Subject: New debug counter for unreachable edges found in DOM
- Authentication-results: sourceware.org; auth=none
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;
}