This is an archive of the discontinued LLVM Phabricator instance.

[Polly] [ISLNodeBuilder] [Fortran Arrays] Materialize Fortran array sizes of arrays without memory accesses.
AcceptedPublic

Authored by bollu on Sep 1 2017, 7:31 AM.

Details

Summary

In Polly, we specifically add a paramter to represent the outermost dimension
size of fortran arrays. We do this because this information is statically
available from the fortran metadata generated by dragonegg.
However, we were only materializing these parameters (meaning, creating an
llvm::Value to back the isl_id) from *memory accesses*. This is wrong,
we should materialize parameters from *scop array info*.

It is wrong because if there is a case where we detect 2 fortran arrays,
but only one of them is accessed, we may not materialize the other array's
dimensions at all.

This is incorrect. We fix this by looping over all
polly::ScopArrayInfo in a scop, rather that just all
polly::MemoryAccess.

Event Timeline

bollu created this revision.Sep 1 2017, 7:31 AM
bollu added a comment.Sep 1 2017, 7:33 AM

Review please, this was a quick bugfix.

grosser accepted this revision.Sep 1 2017, 9:16 AM
This revision is now accepted and ready to land.Sep 1 2017, 9:16 AM