Skip to content

Commit c530d77

Browse files
committed
Refactor compute_deps_osl to use osl_relation_get_attributes for iterator and dimension counts
1 parent 655ca80 commit c530d77

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

tool/osl_pluto.c

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
#include "isl/map.h"
3939
#include "isl/mat.h"
4040
#include "isl/set.h"
41-
#include "isl/val.h"
4241
#include "isl/space.h"
4342
#include "isl/union_map.h"
43+
#include "isl/val.h"
4444

4545
/*
4646
* Converts a [A c] pluto transformations to a [eq -I A c] osl scattering
@@ -1253,8 +1253,15 @@ static void compute_deps_osl(osl_scop_p scop, PlutoProg *prog,
12531253
dom = osl_relation_list_to_isl_set(stmt->domain, space);
12541254
dom = isl_set_intersect_params(dom, isl_set_copy(context));
12551255

1256-
space = isl_space_alloc(ctx, scop->context->nb_parameters, niter,
1257-
2 * niter + 1);
1256+
int nb_parameters = OSL_UNDEFINED;
1257+
int nb_iterators = OSL_UNDEFINED;
1258+
int nb_scattdims = OSL_UNDEFINED;
1259+
int nb_localdims = OSL_UNDEFINED;
1260+
int array_id = OSL_UNDEFINED;
1261+
osl_relation_get_attributes(stmt->scattering, &nb_parameters,
1262+
&nb_iterators, &nb_scattdims, &nb_localdims,
1263+
&array_id);
1264+
space = isl_space_alloc(ctx, nb_parameters, nb_iterators, nb_scattdims);
12581265
if (scop->context->nb_parameters) {
12591266
scop_params = (osl_strings_p)scop->parameters->data;
12601267
space = set_names(space, isl_dim_param, scop_params->string);
@@ -1307,7 +1314,6 @@ static void compute_deps_osl(osl_scop_p scop, PlutoProg *prog,
13071314
isl_map *read_pos;
13081315
isl_map *write_pos;
13091316
isl_map *schedule_i;
1310-
13111317
char name[25];
13121318

13131319
if (access->elt->type == OSL_TYPE_READ) {
@@ -1337,8 +1343,16 @@ static void compute_deps_osl(osl_scop_p scop, PlutoProg *prog,
13371343
dom = osl_relation_list_to_isl_set(stmt->domain, space);
13381344
dom = isl_set_intersect_params(dom, isl_set_copy(context));
13391345

1340-
space = isl_space_alloc(ctx, scop->context->nb_parameters, niter,
1341-
2 * niter + 1);
1346+
int nb_parameters = OSL_UNDEFINED;
1347+
int nb_iterators = OSL_UNDEFINED;
1348+
int nb_scattdims = OSL_UNDEFINED;
1349+
int nb_localdims = OSL_UNDEFINED;
1350+
int array_id = OSL_UNDEFINED;
1351+
osl_relation_get_attributes(stmt->scattering, &nb_parameters,
1352+
&nb_iterators, &nb_scattdims, &nb_localdims,
1353+
&array_id);
1354+
space = isl_space_alloc(ctx, scop->context->nb_parameters, nb_iterators,
1355+
nb_scattdims);
13421356
if (scop->context->nb_parameters) {
13431357
scop_params = (osl_strings_p)scop->parameters->data;
13441358
space = set_names(space, isl_dim_param, scop_params->string);

0 commit comments

Comments
 (0)