[Fortran Support] Materialize outermost dimension for Fortran array.
authorSiddharth Bhat <siddu.druid@gmail.com>
Fri, 19 May 2017 15:07:45 +0000 (15:07 +0000)
committerSiddharth Bhat <siddu.druid@gmail.com>
Fri, 19 May 2017 15:07:45 +0000 (15:07 +0000)
commitb7f68b8c9e2c499d04a9cc8d8cf4df783ae34bff
treedee824225e7f63b3efea13b1d36a2fc9d54bbc11
parentce941c9c380d37a670e3cd3e283ae4070a52859f
[Fortran Support] Materialize outermost dimension for Fortran array.

- We use the outermost dimension of arrays since we need this
information to generate GPU transfers.

- In general, if we do not know the outermost dimension of the array
(because the indexing expression is non-affine, for example) then we
simply cannot generate transfer code.

- However, for Fortran arrays, we can use the Fortran array
representation which stores the dimensions of all arrays.

- This patch uses the Fortran array representation to generate code that
computes the outermost dimension size.

Differential Revision: https://reviews.llvm.org/D32967

llvm-svn: 303429
polly/include/polly/CodeGen/IslNodeBuilder.h
polly/include/polly/ScopInfo.h
polly/lib/Analysis/ScopInfo.cpp
polly/lib/CodeGen/IslNodeBuilder.cpp
polly/lib/CodeGen/PPCGCodeGeneration.cpp
polly/test/Isl/CodeGen/fortran_array_runtime_size_generation.ll [new file with mode: 0644]
polly/test/ScopInfo/fortran_array_param_nonmalloc_nonvectored_read_and_write.ll