mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-25 05:40:26 +08:00
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. From-SVN: r164793
This commit is contained in:
parent
45fc26fcad
commit
3a7cd43867
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user