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]

[PATCH 31/44] Outline lst_niter_for_loop.


From: spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
	lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
	* graphite-poly.h (lst_niter_for_loop): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@164124 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog           |    6 ++++++
 gcc/ChangeLog.graphite  |    6 ++++++
 gcc/graphite-blocking.c |   17 ++++++++---------
 gcc/graphite-poly.h     |   13 +++++++++++++
 4 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 217799a..7f09a83 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
 
+	* graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
+	lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
+	* graphite-poly.h (lst_niter_for_loop): New.
+
+2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
+
 	* graphite-poly.c (apply_poly_transforms): Do not abort when the
 	transform read from disk is not legal.  Call fatal_error instead.
 
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index 313869c..a22f77e 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,5 +1,11 @@
 2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>
 
+	* graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
+	lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
+	* graphite-poly.h (lst_niter_for_loop): New.
+
+2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>
+
 	* graphite-poly.c (apply_poly_transforms): Do not abort when the
 	transform read from disk is not legal.  Call fatal_error instead.
 
diff --git a/gcc/graphite-blocking.c b/gcc/graphite-blocking.c
index 6e4334a..3951b60 100644
--- a/gcc/graphite-blocking.c
+++ b/gcc/graphite-blocking.c
@@ -172,25 +172,25 @@ pbb_strip_mine_time_depth (poly_bb_p pbb, int time_depth, int stride)
   return true;
 }
 
-/* Returns true when strip mining with STRIDE of the loop around PBB
-   at DEPTH is profitable.  */
+/* Returns true when strip mining with STRIDE of the loop LST is
+   profitable.  */
 
 static bool
-pbb_strip_mine_profitable_p (poly_bb_p pbb,
-			     graphite_dim_t depth,
-			     int stride)
+lst_strip_mine_profitable_p (lst_p lst, int stride)
 {
   mpz_t niter, strip_stride;
   bool res;
 
+  gcc_assert (LST_LOOP_P (lst));
   mpz_init (strip_stride);
   mpz_init (niter);
+
   mpz_set_si (strip_stride, stride);
-  pbb_number_of_iterations_at_time (pbb, psct_dynamic_dim (pbb, depth), niter);
+  lst_niter_for_loop (lst, niter);
   res = (mpz_cmp (niter, strip_stride) > 0);
+
   mpz_clear (strip_stride);
   mpz_clear (niter);
-
   return res;
 }
 
@@ -244,8 +244,7 @@ lst_do_strip_mine (lst_p lst)
 
   depth = lst_depth (lst);
   if (depth >= 0
-      && pbb_strip_mine_profitable_p (LST_PBB (lst_find_first_pbb (lst)),
-				      depth, stride))
+      && lst_strip_mine_profitable_p (lst, stride))
     {
       res |= lst_do_strip_mine_loop (lst, lst_depth (lst));
       lst_add_loop_under_loop (lst);
diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h
index 5ed1b04..5f536a8 100644
--- a/gcc/graphite-poly.h
+++ b/gcc/graphite-poly.h
@@ -1062,6 +1062,19 @@ lst_remove_from_sequence (lst_p lst)
   LST_LOOP_FATHER (lst) = NULL;
 }
 
+/* Sets NITER to the upper bound approximation of the number of
+   iterations of loop LST.  */
+
+static inline void
+lst_niter_for_loop (lst_p lst, mpz_t niter)
+{
+  int depth = lst_depth (lst);
+  poly_bb_p pbb = LST_PBB (lst_find_first_pbb (lst));
+
+  gcc_assert (LST_LOOP_P (lst));
+  pbb_number_of_iterations_at_time (pbb, psct_dynamic_dim (pbb, depth), niter);
+}
+
 /* Updates the scattering of PBB to be at the DEWEY number in the loop
    at depth LEVEL.  */
 
-- 
1.7.0.4


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