diff options
author | Andreas Simbuerger <simbuerg@fim.uni-passau.de> | 2017-08-07 20:54:20 +0000 |
---|---|---|
committer | Andreas Simbuerger <simbuerg@fim.uni-passau.de> | 2017-08-07 20:54:20 +0000 |
commit | 81fb6b3e4085cd7f21f0633629532c718047fa9b (patch) | |
tree | de8da630ea5b0aff147a8c5fb54e67cd8674354f /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | c85d26b0f3dbef5d78c330c4610e355766fdbb0f (diff) | |
download | bcm5719-llvm-81fb6b3e4085cd7f21f0633629532c718047fa9b.tar.gz bcm5719-llvm-81fb6b3e4085cd7f21f0633629532c718047fa9b.zip |
[Polly] Fully-Indexed static expansion
This commit implements the initial version of fully-indexed static
expansion.
```
for(int i = 0; i<Ni; i++)
for(int j = 0; j<Ni; j++)
S: B[j] = j;
T: A[i] = B[i]
```
After the pass, we want this :
```
for(int i = 0; i<Ni; i++)
for(int j = 0; j<Ni; j++)
S: B[i][j] = j;
T: A[i] = B[i][i]
```
For now we bail (fail) in the following cases:
- Scalar access
- Multiple writes per SAI
- MayWrite Access
- Expansion that leads to an access to the original array
Furthermore: We still miss checks for escaping references to the array
base pointers. A future commit will add the missing escape-checks to
stay correct in those cases. The expansion is still locked behind a
CLI-Option and should not yet be used.
Patch contributed by: Nicholas Bonfante <bonfante.nicolas@gmail.com>
Reviewers: simbuerg, Meinersbur, bollu
Reviewed By: Meinersbur
Subscribers: mgorny, llvm-commits, pollydev
Differential Revision: https://reviews.llvm.org/D34982
llvm-svn: 310304
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions