This is an archive of the discontinued LLVM Phabricator instance.

Update to ISL 0.16.1
ClosedPublic

Authored by Meinersbur on Jan 15 2016, 7:28 AM.

Details

Summary

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?

Diff Detail

Event Timeline

Meinersbur updated this revision to Diff 44990.Jan 15 2016, 7:28 AM
Meinersbur retitled this revision from to Update to ISL 0.16.1.
Meinersbur updated this object.
Meinersbur added reviewers: grosser, jdoerfert.
Meinersbur added subscribers: pollydev, llvm-commits.
grosser edited edge metadata.Jan 15 2016, 7:51 AM
grosser added a subscriber: grosser.

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

Meinersbur accepted this revision.Jan 15 2016, 8:07 AM
Meinersbur added a reviewer: Meinersbur.

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

Thanks. I thought it had to do with invariant loads, because of the file name and polly.start is not from a statement.

This revision is now accepted and ready to land.Jan 15 2016, 8:07 AM
Meinersbur closed this revision.Jan 15 2016, 8:07 AM

Committed as r257898