summaryrefslogtreecommitdiff
path: root/gcc/graphite-poly.h
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2009-11-25 05:20:58 +0000
committerSebastian Pop <spop@gcc.gnu.org>2009-11-25 05:20:58 +0000
commit74715a9bf6a5c2e4732b6e9e848048498251c19e (patch)
tree40a01f76f20cf91efc83af7d45510ac31f18b852 /gcc/graphite-poly.h
parentfb00d28e1d89b93a072a8068d2e48bcf38e245fe (diff)
downloadgcc-74715a9bf6a5c2e4732b6e9e848048498251c19e.tar.gz
graphite-poly.h (struct scop): Add a field saved_schedule.
2009-10-22 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.h (struct scop): Add a field saved_schedule. (SCOP_SAVED_SCHEDULE): New. (store_lst_schedule): New. (restore_lst_schedule): New. (store_scattering): Call store_lst_schedule. (restore_scattering): Call restore_lst_schedule. From-SVN: r154617
Diffstat (limited to 'gcc/graphite-poly.h')
-rw-r--r--gcc/graphite-poly.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h
index 8165d35fb49..3782c788463 100644
--- a/gcc/graphite-poly.h
+++ b/gcc/graphite-poly.h
@@ -823,8 +823,8 @@ struct scop
representation. */
VEC (poly_bb_p, heap) *bbs;
- /* Original and transformed schedules. */
- lst_p original_schedule, transformed_schedule;
+ /* Original, transformed and saved schedules. */
+ lst_p original_schedule, transformed_schedule, saved_schedule;
/* The context describes known restrictions concerning the parameters
and relations in between the parameters.
@@ -852,6 +852,7 @@ struct scop
#define SCOP_ORIGINAL_PDDRS(S) (S->original_pddrs)
#define SCOP_ORIGINAL_SCHEDULE(S) (S->original_schedule)
#define SCOP_TRANSFORMED_SCHEDULE(S) (S->transformed_schedule)
+#define SCOP_SAVED_SCHEDULE(S) (S->saved_schedule)
extern scop_p new_scop (void *);
extern void free_scop (scop_p);
@@ -939,6 +940,22 @@ store_scattering_pbb (poly_bb_p pbb)
PBB_SAVED (pbb) = poly_scattering_copy (PBB_TRANSFORMED (pbb));
}
+/* Stores the SCOP_TRANSFORMED_SCHEDULE to SCOP_SAVED_SCHEDULE. */
+
+static inline void
+store_lst_schedule (scop_p scop)
+{
+ SCOP_SAVED_SCHEDULE (scop) = copy_lst (SCOP_TRANSFORMED_SCHEDULE (scop));
+}
+
+/* Restores the SCOP_TRANSFORMED_SCHEDULE from SCOP_SAVED_SCHEDULE. */
+
+static inline void
+restore_lst_schedule (scop_p scop)
+{
+ SCOP_TRANSFORMED_SCHEDULE (scop) = copy_lst (SCOP_SAVED_SCHEDULE (scop));
+}
+
/* Saves the scattering for all the pbbs in the SCOP. */
static inline void
@@ -949,6 +966,8 @@ store_scattering (scop_p scop)
for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++)
store_scattering_pbb (pbb);
+
+ store_lst_schedule (scop);
}
/* Restores the scattering of PBB. */
@@ -972,6 +991,8 @@ restore_scattering (scop_p scop)
for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++)
restore_scattering_pbb (pbb);
+
+ restore_lst_schedule (scop);
}
#endif