With this update the isl AST generation extracts disjunctive constraints early
on. As a result, code that previously resulted in two branches with (close-to)
identical code within them:
if (P <= -1) {
for (int c0 = 0; c0 < N; c0 += 1)
Stmt_store(c0);
} else if (P >= 1)
for (int c0 = 0; c0 < N; c0 += 1)
Stmt_store(c0);
results now in only a single branch body:
if (P <= -1 || P >= 1)
for (int c0 = 0; c0 < N; c0 += 1)
Stmt_store(c0);
This resolves http://llvm.org/PR27559
Besides the above change, this isl update brings better simplification of
sets/maps containing existentially quantified dimensions and fixes a bug in
isl's coalescing.
llvm-svn: 272500
|
||
|---|---|---|
| .. | ||
| README | ||
| figure7_b.c | ||
| figure7_b.in | ||
| figure7_c.c | ||
| figure7_c.in | ||
| figure7_d.c | ||
| figure7_d.in | ||
| figure8_a.c | ||
| figure8_a.in | ||
| figure8_b.c | ||
| figure8_b.in | ||
README
These examples are taken from the "Polyhedra Scanning Revisited" paper by Chun Chen.