OSDN Git Service

PR 44576: miss rate computation improvement for prefetching loop arrays.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Jul 2010 16:34:29 +0000 (16:34 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 2 Jul 2010 16:34:29 +0000 (16:34 +0000)
2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>

PR middle-end/44576
* tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
of 1000) for miss rate if the address diference is greater than or
equal to the cache line size (the two reference will never hit the
same cache line).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161727 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-ssa-loop-prefetch.c

index bd7b258..7e7944a 100644 (file)
@@ -1,3 +1,11 @@
+2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
+
+       PR middle-end/44576
+       * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
+       of 1000) for miss rate if the address diference is greater than or
+       equal to the cache line size (the two reference will never hit the
+       same cache line).
+
 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
 
        PR target/42835
index 6547489..934b49c 100644 (file)
@@ -654,6 +654,11 @@ compute_miss_rate (unsigned HOST_WIDE_INT cache_line_size,
   int total_positions, miss_positions, miss_rate;
   int address1, address2, cache_line1, cache_line2;
 
+  /* It always misses if delta is greater than or equal to the cache
+     line size.  */
+  if (delta >= cache_line_size)
+    return 1000;
+
   total_positions = 0;
   miss_positions = 0;