This is an archive of the discontinued LLVM Phabricator instance.

[Polly][NFC] Partially refactoring of IslAstInfo and IslNodeBuilder to use isl++
ClosedPublic

Authored by patacca on Apr 6 2021, 9:47 AM.

Details

Summary

Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.

Changes made:

  • Refactoring the following methods of class IslAstInfo
    • isParallel() isExecutedInParallel() isReductionParallel() getSchedule() getMinimalDependenceDistance() getBrokenReductions()
  • Refactoring the following methods of class IslNodeBuilder
    • getReferencesInSubtree() getScheduleForAstNode()
  • Refactoring function getBrokenReductionsStr()
  • Fixed the mismatching function declaration for getScheduleForAstNode()

Diff Detail

Event Timeline

patacca created this revision.Apr 6 2021, 9:47 AM
patacca requested review of this revision.Apr 6 2021, 9:47 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 6 2021, 9:47 AM
patacca updated this revision to Diff 335579.EditedApr 6 2021, 10:32 AM

[Polly] Using is_null() from C++ isl bindings

EDIT: This is an erroneous diff. Please ignore it

patacca updated this revision to Diff 335583.EditedApr 6 2021, 10:38 AM

Using is_null() from isl C++ bindings.
The previous diff was erroneous.

EDIT: This is an erroneous diff. Please ignore it

patacca updated this revision to Diff 335589.EditedApr 6 2021, 10:49 AM

Using is_null() from isl C++ bindings.

EDIT: This is an erroneous diff. Please ignore it

Harbormaster completed remote builds in B97354: Diff 335589.
patacca updated this revision to Diff 335593.EditedApr 6 2021, 10:58 AM

I had some difficulties with arcanist. This is the right diff.

Changes made:

  • Refactoring isParallel() isExecutedInParallel() isReductionParallel() getSchedule() getBrokenReductions() getReferencesInSubtree() getScheduleForAstNode() getBrokenReductionsStr() to take C++ bindings instead of the plain isl C api.
  • Fixed the mismatching function declaration for getScheduleForAstNode()
  • Using is_null() from isl C++ bindings
patacca updated this revision to Diff 335875.EditedApr 7 2021, 11:19 AM
patacca retitled this revision from [Polly] Refactoring isExecutedInParallel() isReductionParallel() getSchedule() getBrokenReductions() getReferencesInSubtree() getScheduleForAstNode() getBrokenReductionsStr() to use isl++ to [Polly] Partially refactoring of IslAstInfo and IslNodeBuilder to use isl++.
patacca edited the summary of this revision. (Show Details)

Refactoring method getMinimalDependenceDistance()

Meinersbur accepted this revision.Apr 8 2021, 8:54 PM

Thank. Patch itself looks good.

Could you remove the duplicate the repeated title from the summary and append NFC. to the title? (I think I forgot to mention this in the last commit).

Would you like me to push this patch to main?

This revision is now accepted and ready to land.Apr 8 2021, 8:54 PM
patacca retitled this revision from [Polly] Partially refactoring of IslAstInfo and IslNodeBuilder to use isl++ to [Polly][NFC] Partially refactoring of IslAstInfo and IslNodeBuilder to use isl++.Apr 9 2021, 1:58 AM
patacca edited the summary of this revision. (Show Details)

Changes done.
Please go ahead and push it