[DA] Enable -da-delinearize by default
authorDavid Green <david.green@arm.com>
Thu, 21 Jun 2018 11:53:16 +0000 (11:53 +0000)
committerDavid Green <david.green@arm.com>
Thu, 21 Jun 2018 11:53:16 +0000 (11:53 +0000)
commitd143c65de3c884d09197da279d2f04f094efaf15
tree00b55affd4b30f374cd0363e690c296395b0e3c3
parent2a9cde026c3164ec3d4419d1c2da30ffdc70233d
[DA] Enable -da-delinearize by default

This enables da-delinearize in Dependence Analysis for delinearizing array
accesses into multiple dimensions. This can help to increase the power of
Dependence analysis on multi-dimensional arrays and prevent having to fall
back to the slower and less accurate MIV tests. It adds static checks on the
bounds of the arrays to ensure that one dimension doesn't overflow into
another, and brings our code in line with our tests.

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

llvm-svn: 335217
17 files changed:
llvm/include/llvm/Analysis/DependenceAnalysis.h
llvm/lib/Analysis/DependenceAnalysis.cpp
llvm/test/Analysis/Delinearization/multidim_two_accesses_different_delinearization.ll
llvm/test/Analysis/DependenceAnalysis/Banerjee.ll
llvm/test/Analysis/DependenceAnalysis/Coupled.ll
llvm/test/Analysis/DependenceAnalysis/DADelin.ll [new file with mode: 0644]
llvm/test/Analysis/DependenceAnalysis/ExactSIV.ll
llvm/test/Analysis/DependenceAnalysis/GCD.ll
llvm/test/Analysis/DependenceAnalysis/Invariant.ll
llvm/test/Analysis/DependenceAnalysis/NonAffineExpr.ll
llvm/test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
llvm/test/Analysis/DependenceAnalysis/Preliminary.ll
llvm/test/Analysis/DependenceAnalysis/Propagating.ll
llvm/test/Analysis/DependenceAnalysis/Separability.ll
llvm/test/Analysis/DependenceAnalysis/StrongSIV.ll
llvm/test/Analysis/DependenceAnalysis/SymbolicSIV.ll
llvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll