aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/dbgcnt.def1
-rw-r--r--gcc/tree-ssa-loop-prefetch.c5
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5dd00df..c4801f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
+
+ * dbgcnt.def (prefetch): New debug counter.
+ * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
+ (schedule_prefetches): Stop issueing prefetches if debug counter
+ tripped.
+
2017-06-06 Tom de Vries <tom@codesourcery.com>
* doc/sourcebuild.texi (Testsuites, C Language Testsuites,
diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index ded20e0..6c63508 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -174,6 +174,7 @@ DEBUG_COUNTER (merged_ipa_icf)
DEBUG_COUNTER (postreload_cse)
DEBUG_COUNTER (pre)
DEBUG_COUNTER (pre_insn)
+DEBUG_COUNTER (prefetch)
DEBUG_COUNTER (registered_jump_thread)
DEBUG_COUNTER (sched2_func)
DEBUG_COUNTER (sched_block)
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index f5f2802..6010141 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-inline.h"
#include "tree-data-ref.h"
#include "diagnostic-core.h"
+#include "dbgcnt.h"
/* This pass inserts prefetch instructions to optimize cache usage during
accesses to arrays in loops. It processes loops sequentially and:
@@ -1058,6 +1059,10 @@ schedule_prefetches (struct mem_ref_group *groups, unsigned unroll_factor,
if (2 * remaining_prefetch_slots < prefetch_slots)
continue;
+ /* Stop prefetching if debug counter is activated. */
+ if (!dbg_cnt (prefetch))
+ continue;
+
ref->issue_prefetch_p = true;
if (remaining_prefetch_slots <= prefetch_slots)