Not committing right away because I am unsure about unit test invariant_load_escaping_second_scop.ll. What's its purpose? Why does updating ISL move where instructions are generated?
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
LGTM.
The difference is because the isl generated code has changed
from:
for (int c0 = 0; c0 < floord(tmp, 2) - 100; c0 += 1) Stmt_stmt_P(c0); if (tmp <= 201) Stmt_stmt_P(0);
to:
Stmt_stmt_P(0); for (int c0 = 1; c0 < floord(tmp, 2) - 100; c0 += 1) Stmt_stmt_P(c0);
The instruction that has move is generated before the loop. In
the old code, this is polly.start. In the new code, this is
polly.Stmt.stmt.P.
Thank you for updating isl so quickly!
Best,
Tobias
Comment Actions
Thanks. I thought it had to do with invariant loads, because of the file name and polly.start is not from a statement.