From: Sebastian Pop Date: Thu, 30 Sep 2010 21:19:16 +0000 (+0000) Subject: Speed-up loop blocking: strip-mining is always legal. X-Git-Tag: releases/gcc-4.6.0~3988 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3a7cd43867b46d493106b680b5505e90dc47fbed;p=thirdparty%2Fgcc.git Speed-up loop blocking: strip-mining is always legal. 2010-08-23 Sebastian Pop * graphite-blocking.c (scop_do_strip_mine): Do not call graphite_legal_transform. (scop_do_block): Same. From-SVN: r164793 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b1023ceeaaa..353e988945eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-09-30 Sebastian Pop + + * graphite-blocking.c (scop_do_strip_mine): Do not call + graphite_legal_transform. + (scop_do_block): Same. + 2010-09-30 Vladimir Kargov * graphite-scop-detection.c (graphite_can_represent_loop): Correct the diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 4337d88ad07d..f94fc6efae3e 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,9 @@ +2010-08-23 Sebastian Pop + + * graphite-blocking.c (scop_do_strip_mine): Do not call + graphite_legal_transform. + (scop_do_block): Same. + 2010-08-20 Vladimir Kargov * graphite-scop-detection.c (graphite_can_represent_loop): Correct the diff --git a/gcc/graphite-blocking.c b/gcc/graphite-blocking.c index 5108ed069bc9..6e4334ad1879 100644 --- a/gcc/graphite-blocking.c +++ b/gcc/graphite-blocking.c @@ -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;