This is an archive of the discontinued LLVM Phabricator instance.

[Polly] Exclude Ignored Intrinsics from explicit instruction list
ClosedPublic

Authored by nandini12396 on Jun 1 2017, 3:39 AM.

Diff Detail

Event Timeline

nandini12396 created this revision.Jun 1 2017, 3:39 AM
This comment was removed by nandini12396.
This comment was removed by nandini12396.

Ok Sir. I got it finally! This is wrong. I will update this diff. Thank you.

Meinersbur added inline comments.Jun 1 2017, 4:33 AM
test/ScopInfo/intrinsics_misc.ll
2

Remove -S. It is ignored when you also specify -analyze.

The result of this command is:

Printing analysis 'Polly - Create polyhedral description of Scops' for region: 'for.cond1 => for.end' in function '_Z2jdv':
Invalid Scop!
Printing analysis 'Polly - Create polyhedral description of Scops' for region: 'for.cond => for.end12' in function '_Z2jdv':
Invalid Scop!
Printing analysis 'Polly - Create polyhedral description of Scops' for region: 'entry => <Function Return>' in function '_Z2jdv':
Invalid Scop!

that is, there is no valid scop detection in this function.

Test cases should fail without the change you are intending to make.

yes, sorry forgot to remove that.

Meinersbur edited edge metadata.Jun 1 2017, 6:09 AM

The test case still does not fail when I undo the change in ScopBuilder.cpp

Instead of CHECK-NOT, try a positive match (CHECK-NEXT) of all the instruction list that are supposed to be in there.

You test case is relatively large for such a simple check. Can you find a smaller one? The one in D33163 was a lot smaller. Only a loop and a store in its body is required for the smallest scop. I prefer manually crafted IR over clang-generated IR. Avoid unnamed values (e.g. %0) which can cause a problems with finding unique names in LLVM. The pass -instnamer gives ever value a name.

nandini12396 marked an inline comment as done.

Addressed Michael Sir's comments.

This revision was automatically updated to reflect the committed changes.