This is an archive of the discontinued LLVM Phabricator instance.

[Polly][GSoC 2016]Do not process SCoPs with infeasible runtime context
ClosedPublic

Authored by cs14mtech11017 on Jul 15 2016, 1:11 AM.

Details

Summary

Do not process SCoPs with infeasible runtime context in the new ScopInfoWrapperPass.
Do not compute dependences for such SCoPs in the new DependenceInfoWrapperPass.

Diff Detail

Repository
rL LLVM

Event Timeline

cs14mtech11017 retitled this revision from to [Polly][GSoC 2016]Do not process SCoPs with infeasible runtime context.
cs14mtech11017 updated this object.
cs14mtech11017 updated this object.
cs14mtech11017 added subscribers: grosser, pollydev.
jdoerfert added inline comments.Jul 15 2016, 6:15 AM
lib/Analysis/DependenceInfo.cpp
835 ↗(On Diff #64103)

When does this happen exactly? Can't we just prevent it in the ScopInfo pass?

lib/Analysis/ScopInfo.cpp
4280 ↗(On Diff #64103)

This looks reasonable and as if it would prevent the problem solved above, doesn't it?

cs14mtech11017 added inline comments.Jul 15 2016, 7:12 AM
lib/Analysis/DependenceInfo.cpp
835 ↗(On Diff #64103)

For some SESE Regions, the SCoP does not have a feasible run time context. Hence the SCoP object becomes empty. Placed a null check in this patch in ScopInfoWrapperPass to prevent storing empty SCoPs to the hash map. I think this check is not mandatory, still it is better to have one.

lib/Analysis/ScopInfo.cpp
4280 ↗(On Diff #64103)

Yes this solves the problem. Still, it would be advisable to have the other null check as well.

jdoerfert accepted this revision.Jul 15 2016, 7:54 AM
jdoerfert edited edge metadata.

Except the single comment LGTM.

lib/Analysis/DependenceInfo.cpp
835 ↗(On Diff #64103)

If it is not expected to ever happen make it an assert please.

This revision is now accepted and ready to land.Jul 15 2016, 7:54 AM
cs14mtech11017 edited edge metadata.
cs14mtech11017 marked an inline comment as done.
This revision was automatically updated to reflect the committed changes.