OSDN Git Service

[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)
commit6f9eeb289a73e8ae6bea7e9f70edd61d4bc4c2e3
treef803a604f321410677d1bdc13f19e3c83c7e01e9
parent400b266d8fd3176b99aa77e82b2b9c9ed1b2ca92
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335217 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
include/llvm/Analysis/DependenceAnalysis.h
lib/Analysis/DependenceAnalysis.cpp
test/Analysis/Delinearization/multidim_two_accesses_different_delinearization.ll
test/Analysis/DependenceAnalysis/Banerjee.ll
test/Analysis/DependenceAnalysis/Coupled.ll
test/Analysis/DependenceAnalysis/DADelin.ll [new file with mode: 0644]
test/Analysis/DependenceAnalysis/ExactSIV.ll
test/Analysis/DependenceAnalysis/GCD.ll
test/Analysis/DependenceAnalysis/Invariant.ll
test/Analysis/DependenceAnalysis/NonAffineExpr.ll
test/Analysis/DependenceAnalysis/NonCanonicalizedSubscript.ll
test/Analysis/DependenceAnalysis/Preliminary.ll
test/Analysis/DependenceAnalysis/Propagating.ll
test/Analysis/DependenceAnalysis/Separability.ll
test/Analysis/DependenceAnalysis/StrongSIV.ll
test/Analysis/DependenceAnalysis/SymbolicSIV.ll
test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll