aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2009-11-25 05:25:43 +0000
committerSebastian Pop <spop@gcc.gnu.org>2009-11-25 05:25:43 +0000
commit6c6f84d77276e4edd3abc52e7a19b6c6881ef6d7 (patch)
treea16c5437c17c615f8dae61ea40b98656d3926d38 /gcc
parent585b3e19fe12eb1525ba20557aa993233cc5fab3 (diff)
downloadgcc-6c6f84d77276e4edd3abc52e7a19b6c6881ef6d7.zip
gcc-6c6f84d77276e4edd3abc52e7a19b6c6881ef6d7.tar.gz
gcc-6c6f84d77276e4edd3abc52e7a19b6c6881ef6d7.tar.bz2
graphite-clast-to-gimple.c (gloog): Do not call sese_reset_aux_in_loops.
2009-10-26 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (gloog): Do not call sese_reset_aux_in_loops. * graphite-sese-to-poly.c (build_loop_iteration_domains): Pass an extra argument for domains. Do not use loop->aux. (build_scop_iteration_domain): Initialize and free domains, pass it to build_loop_iteration_domains and extract the information from domains. Do not use loop->aux. * sese.c (sese_reset_aux_in_loops): Removed. * sese.h (sese_reset_aux_in_loops): Removed. From-SVN: r154627
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog.graphite12
-rw-r--r--gcc/graphite-clast-to-gimple.c1
-rw-r--r--gcc/graphite-sese-to-poly.c32
-rw-r--r--gcc/sese.c12
-rw-r--r--gcc/sese.h1
5 files changed, 30 insertions, 28 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index 4da7e86..e67bce7 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,5 +1,17 @@
2009-10-26 Sebastian Pop <sebastian.pop@amd.com>
+ * graphite-clast-to-gimple.c (gloog): Do not call
+ sese_reset_aux_in_loops.
+ * graphite-sese-to-poly.c (build_loop_iteration_domains): Pass an
+ extra argument for domains. Do not use loop->aux.
+ (build_scop_iteration_domain): Initialize and free domains, pass it
+ to build_loop_iteration_domains and extract the information from
+ domains. Do not use loop->aux.
+ * sese.c (sese_reset_aux_in_loops): Removed.
+ * sese.h (sese_reset_aux_in_loops): Removed.
+
+2009-10-26 Sebastian Pop <sebastian.pop@amd.com>
+
* graphite-clast-to-gimple.c (find_pbb_via_hash): Moved up.
(dependency_in_loop_p): Same.
(translate_clast): Do not use loop->aux. Initialize
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
index 96fb431..8594190 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -1193,7 +1193,6 @@ gloog (scop_p scop, htab_t bb_pbb_mapping)
if_region->true_region->entry,
rename_map, &newivs, newivs_index,
bb_pbb_mapping, 1);
- sese_reset_aux_in_loops (region);
graphite_verify ();
sese_adjust_liveout_phis (region, rename_map,
if_region->region->exit->src,
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 8adffce..d3a2403 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -1066,7 +1066,8 @@ gbb_from_bb (basic_block bb)
static void
build_loop_iteration_domains (scop_p scop, struct loop *loop,
- ppl_Polyhedron_t outer_ph, int nb)
+ ppl_Polyhedron_t outer_ph, int nb,
+ ppl_Pointset_Powerset_C_Polyhedron_t *domains)
{
int i;
ppl_Polyhedron_t ph;
@@ -1205,15 +1206,15 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
gcc_unreachable ();
if (loop->inner && loop_in_sese_p (loop->inner, region))
- build_loop_iteration_domains (scop, loop->inner, ph, nb + 1);
+ build_loop_iteration_domains (scop, loop->inner, ph, nb + 1, domains);
if (nb != 0
&& loop->next
&& loop_in_sese_p (loop->next, region))
- build_loop_iteration_domains (scop, loop->next, outer_ph, nb);
+ build_loop_iteration_domains (scop, loop->next, outer_ph, nb, domains);
ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron
- ((ppl_Pointset_Powerset_C_Polyhedron_t *) &loop->aux, ph);
+ (&domains[loop->num], ph);
ppl_delete_Polyhedron (ph);
}
@@ -1592,31 +1593,34 @@ build_scop_iteration_domain (scop_p scop)
int i;
ppl_Polyhedron_t ph;
poly_bb_p pbb;
+ int nb_loops = number_of_loops ();
+ ppl_Pointset_Powerset_C_Polyhedron_t *domains
+ = XNEWVEC (ppl_Pointset_Powerset_C_Polyhedron_t, nb_loops);
+
+ for (i = 0; i < nb_loops; i++)
+ domains[i] = NULL;
ppl_new_C_Polyhedron_from_space_dimension (&ph, scop_nb_params (scop), 0);
for (i = 0; VEC_iterate (loop_p, SESE_LOOP_NEST (region), i, loop); i++)
if (!loop_in_sese_p (loop_outer (loop), region))
- build_loop_iteration_domains (scop, loop, ph, 0);
+ build_loop_iteration_domains (scop, loop, ph, 0, domains);
for (i = 0; VEC_iterate (poly_bb_p, SCOP_BBS (scop), i, pbb); i++)
- if (gbb_loop (PBB_BLACK_BOX (pbb))->aux)
+ if (domains[gbb_loop (PBB_BLACK_BOX (pbb))->num])
ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron
(&PBB_DOMAIN (pbb), (ppl_const_Pointset_Powerset_C_Polyhedron_t)
- gbb_loop (PBB_BLACK_BOX (pbb))->aux);
+ domains[gbb_loop (PBB_BLACK_BOX (pbb))->num]);
else
ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron
(&PBB_DOMAIN (pbb), ph);
- for (i = 0; VEC_iterate (loop_p, SESE_LOOP_NEST (region), i, loop); i++)
- if (loop->aux)
- {
- ppl_delete_Pointset_Powerset_C_Polyhedron
- ((ppl_Pointset_Powerset_C_Polyhedron_t) loop->aux);
- loop->aux = NULL;
- }
+ for (i = 0; i < nb_loops; i++)
+ if (domains[i])
+ ppl_delete_Pointset_Powerset_C_Polyhedron (domains[i]);
ppl_delete_Polyhedron (ph);
+ free (domains);
}
/* Add a constrain to the ACCESSES polyhedron for the alias set of
diff --git a/gcc/sese.c b/gcc/sese.c
index 917adbd..76c92bd 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -1458,18 +1458,6 @@ move_sese_in_condition (sese region)
return if_region;
}
-/* Reset the loop->aux pointer for all loops in REGION. */
-
-void
-sese_reset_aux_in_loops (sese region)
-{
- int i;
- loop_p loop;
-
- for (i = 0; VEC_iterate (loop_p, SESE_LOOP_NEST (region), i, loop); i++)
- loop->aux = NULL;
-}
-
/* Returns the scalar evolution of T in REGION. Every variable that
is not defined in the REGION is considered a parameter. */
diff --git a/gcc/sese.h b/gcc/sese.h
index ca167f5..73d5ade 100644
--- a/gcc/sese.h
+++ b/gcc/sese.h
@@ -68,7 +68,6 @@ extern edge copy_bb_and_scalar_dependences (basic_block, sese, edge, htab_t);
extern struct loop *outermost_loop_in_sese (sese, basic_block);
extern void insert_loop_close_phis (htab_t, loop_p);
extern void insert_guard_phis (basic_block, edge, edge, htab_t, htab_t);
-extern void sese_reset_aux_in_loops (sese);
extern tree scalar_evolution_in_region (sese, loop_p, tree);
/* Check that SESE contains LOOP. */