diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 21:19:16 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-09-30 21:19:16 +0000 |
commit | c7f969c4afd09857b4996085899e91f28a28c3f8 (patch) | |
tree | 53c9eb76638a81b7929c5fec8f33daabcf6e475d /gcc/graphite-blocking.c | |
parent | 168e8fc0f7a27b81019343eb3ee568ca2e14e3c8 (diff) | |
download | gcc-c7f969c4afd09857b4996085899e91f28a28c3f8.tar.gz |
Speed-up loop blocking: strip-mining is always legal.
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164793 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-blocking.c')
-rw-r--r-- | gcc/graphite-blocking.c | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/gcc/graphite-blocking.c b/gcc/graphite-blocking.c index 5108ed069bc..6e4334ad187 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; |