]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Speed-up loop blocking: strip-mining is always legal.
authorSebastian Pop <sebastian.pop@amd.com>
Thu, 30 Sep 2010 21:19:16 +0000 (21:19 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Thu, 30 Sep 2010 21:19:16 +0000 (21:19 +0000)
2010-08-23  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-blocking.c (scop_do_strip_mine): Do not call
graphite_legal_transform.
(scop_do_block): Same.

From-SVN: r164793

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/graphite-blocking.c

index 3b1023ceeaaabdaae4109011d156b6929e618357..353e988945ebf21d7492b7e47d471baab538ad1f 100644 (file)
@@ -1,3 +1,9 @@
+2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-blocking.c (scop_do_strip_mine): Do not call
+       graphite_legal_transform.
+       (scop_do_block): Same.
+
 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
 
        * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
index 4337d88ad07d810a92f0c857ddf321bc171ed50d..f94fc6efae3e85186a9456ab414e7ab8012c355e 100644 (file)
@@ -1,3 +1,9 @@
+2010-08-23  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-blocking.c (scop_do_strip_mine): Do not call
+       graphite_legal_transform.
+       (scop_do_block): Same.
+
 2010-08-20  Vladimir Kargov  <kargov@gmail.com>
 
        * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
index 5108ed069bc91da4a6634cf6a82b75ffb079eabf..6e4334ad18794457779a111716ec68f2c70daf7e 100644 (file)
@@ -254,28 +254,13 @@ lst_do_strip_mine (lst_p lst)
   return res;
 }
 
-/* Strip mines all the loops in SCOP.  Nothing profitable in all this:
-   this is just a driver function.  */
+/* Strip mines all the loops in SCOP.  Returns true when some loops
+   have been strip-mined.  */
 
 bool
 scop_do_strip_mine (scop_p scop)
 {
-  bool transform_done = false;
-
-  store_scattering (scop);
-
-  transform_done = lst_do_strip_mine (SCOP_TRANSFORMED_SCHEDULE (scop));
-
-  if (!transform_done)
-    return false;
-
-  if (!graphite_legal_transform (scop))
-    {
-      restore_scattering (scop);
-      return false;
-    }
-
-  return transform_done;
+  return lst_do_strip_mine (SCOP_TRANSFORMED_SCHEDULE (scop));
 }
 
 /* Loop blocks all the loops in SCOP.  Returns true when we manage to
@@ -292,10 +277,10 @@ scop_do_block (scop_p scop)
   strip_mined = lst_do_strip_mine (SCOP_TRANSFORMED_SCHEDULE (scop));
   interchanged = scop_do_interchange (scop);
 
-  /* If we don't interchange loops, then the strip mine is not
-     profitable, and the transform is not a loop blocking.  */
-  if (!interchanged
-      || !graphite_legal_transform (scop))
+  /* If we don't interchange loops, the strip mine alone will not be
+     profitable, and the transform is not a loop blocking: so revert
+     the transform.  */
+  if (!interchanged)
     {
       restore_scattering (scop);
       return false;