summaryrefslogtreecommitdiffstats
path: root/polly/lib/Analysis/ScopInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/Analysis/ScopInfo.cpp')
-rw-r--r--polly/lib/Analysis/ScopInfo.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp
index 68316588612..39ac622a3c7 100644
--- a/polly/lib/Analysis/ScopInfo.cpp
+++ b/polly/lib/Analysis/ScopInfo.cpp
@@ -3651,6 +3651,12 @@ void ScopInfo::buildStmts(Region &SR) {
void ScopInfo::buildAccessFunctions(Region &R, BasicBlock &BB,
Region *NonAffineSubRegion,
bool IsExitBlock) {
+ // We do not build access functions for error blocks, as they may contain
+ // instructions we can not model.
+ DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
+ if (isErrorBlock(BB, R, *LI, DT) && !IsExitBlock)
+ return;
+
Loop *L = LI->getLoopFor(&BB);
// The set of loops contained in non-affine subregions that are part of R.
OpenPOWER on IntegriCloud