diff options
author | Tobias Grosser <tobias@grosser.es> | 2015-10-12 08:02:00 +0000 |
---|---|---|
committer | Tobias Grosser <tobias@grosser.es> | 2015-10-12 08:02:00 +0000 |
commit | 374bce0c222c2fe558cc27475fe2febbf53c6117 (patch) | |
tree | 5098fdc20414633255a7ac546c639dfefea2a296 /llvm/lib/Analysis/Delinearization.cpp | |
parent | 6d45532961baeb6d84e033a1bb7d6256fbe55efb (diff) | |
download | bcm5719-llvm-374bce0c222c2fe558cc27475fe2febbf53c6117.tar.gz bcm5719-llvm-374bce0c222c2fe558cc27475fe2febbf53c6117.zip |
SCEV: Allow simple AddRec * Parameter products in delinearization
This patch also allows the -delinearize pass to delinearize expressions that do
not have an outermost SCEVAddRec expression. The SCEV::delinearize
infrastructure allowed this since r240952, but the -delinearize pass was not
updated yet.
llvm-svn: 250018
Diffstat (limited to 'llvm/lib/Analysis/Delinearization.cpp')
-rw-r--r-- | llvm/lib/Analysis/Delinearization.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/llvm/lib/Analysis/Delinearization.cpp b/llvm/lib/Analysis/Delinearization.cpp index 8e65c4c469a..baee8b3b084 100644 --- a/llvm/lib/Analysis/Delinearization.cpp +++ b/llvm/lib/Analysis/Delinearization.cpp @@ -102,20 +102,14 @@ void Delinearization::print(raw_ostream &O, const Module *) const { if (!BasePointer) break; AccessFn = SE->getMinusSCEV(AccessFn, BasePointer); - const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(AccessFn); - - // Do not try to delinearize memory accesses that are not AddRecs. - if (!AR) - break; - O << "\n"; O << "Inst:" << *Inst << "\n"; O << "In Loop with Header: " << L->getHeader()->getName() << "\n"; - O << "AddRec: " << *AR << "\n"; + O << "AccessFunction: " << *AccessFn << "\n"; SmallVector<const SCEV *, 3> Subscripts, Sizes; - SE->delinearize(AR, Subscripts, Sizes, SE->getElementSize(Inst)); + SE->delinearize(AccessFn, Subscripts, Sizes, SE->getElementSize(Inst)); if (Subscripts.size() == 0 || Sizes.size() == 0 || Subscripts.size() != Sizes.size()) { O << "failed to delinearize\n"; |