Skip to content
Snippets Groups Projects
Commit b284ace6 authored by Daniel Maier's avatar Daniel Maier
Browse files

working and configurable perforation

parent 60ea894c
No related branches found
No related tags found
No related merge requests found
...@@ -17,30 +17,50 @@ perforate(osl_relation_p rel, int i) { ...@@ -17,30 +17,50 @@ perforate(osl_relation_p rel, int i) {
osl_relation_dump(stdout, rel); osl_relation_dump(stdout, rel);
} }
int main() { int main(int argc, char *argv[]) {
osl_scop_p scop; if(argc != 5) {
std::cerr << "usage: <INPUT SCOP> <OUTPUT SCOP> <STATEMENT> <ITERATOR>\n";
return -1;
}
int statement = atoi(argv[3]);
int iterator = atoi(argv[4]);
FILE *fp = fopen("acc.openscop", "r"); auto *fp = fopen(argv[1], "r");
if(!fp) { if(!fp) {
std::cerr << "openscop read failed\n"; std::cerr << "openscop read failed\n";
return -1; return -1;
} }
scop = osl_scop_read(fp); auto scop = osl_scop_read(fp);
fclose(fp); fclose(fp);
for(auto s = scop->statement; s; s = s->next) { /* find statement */
auto d = s->domain; int i = statement;
auto s = scop->statement;
osl_relation_dump(stdout, s->domain); for(; s && i; s = s->next) {
perforate(d); i--;
//s->domain = n; }
if(i || !s) {
std::cerr << "statement not found\n";
return -1;
}
//osl_relation_free(d); osl_relation_dump(stdout, s->domain);
std::cout << "nb_output_dims " << s->domain->nb_output_dims << " iterator " << iterator << "\n";
if(s->domain->nb_output_dims <= iterator) {
std::cerr << "iterator not found\n";
return -1;
} }
perforate(s->domain, iterator);
fp = fopen("perf.openscop", "w"); fp = fopen(argv[2], "w");
if(!fp) {
std::cerr << "openscop write failed\n";
return -1;
}
osl_scop_print(fp, scop); osl_scop_print(fp, scop);
fclose(fp); fclose(fp);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment