-
Daniel Maier authoredDaniel Maier authored
main.cpp 1.07 KiB
#include <iostream>
#include <osl/osl.h>
void
perforate(osl_relation_p rel, int i) {
int r = rel->nb_rows;
int c = rel->nb_columns-2;
osl_relation_insert_blank_row(rel, r);
osl_relation_insert_blank_column(rel, c);
rel->nb_local_dims++;
auto row = rel->m[r];
osl_int_set_si(rel->precision, &row[c], 2);
osl_int_set_si(rel->precision, &row[1+i], -1);
osl_relation_dump(stdout, rel);
}
int main() {
osl_scop_p scop;
FILE *fp = fopen("acc.openscop", "r");
if(!fp) {
std::cerr << "openscop read failed\n";
return -1;
}
scop = osl_scop_read(fp);
fclose(fp);
for(auto s = scop->statement; s; s = s->next) {
auto d = s->domain;
osl_relation_dump(stdout, s->domain);
perforate(d);
//s->domain = n;
//osl_relation_free(d);
}
fp = fopen("perf.openscop", "w");
osl_scop_print(fp, scop);
fclose(fp);
// Dump the content of the scop data structure.
//osl_scop_dump(stdout, scop);
// Save the planet.
osl_scop_free(scop);
}