diff options
Diffstat (limited to 'polly/lib/Analysis/ScopDetection.cpp')
-rw-r--r-- | polly/lib/Analysis/ScopDetection.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopDetection.cpp b/polly/lib/Analysis/ScopDetection.cpp index 79461c8583c..2fa45addc2f 100644 --- a/polly/lib/Analysis/ScopDetection.cpp +++ b/polly/lib/Analysis/ScopDetection.cpp @@ -749,6 +749,15 @@ bool ScopDetection::isValidInstruction(Instruction &Inst, if (isa<LoadInst>(Inst) || isa<StoreInst>(Inst)) { Context.hasStores |= isa<StoreInst>(Inst); Context.hasLoads |= isa<LoadInst>(Inst); + if (auto *Load = dyn_cast<LoadInst>(&Inst)) + if (!Load->isSimple()) + return invalid<ReportNonSimpleMemoryAccess>(Context, /*Assert=*/true, + &Inst); + if (auto *Store = dyn_cast<StoreInst>(&Inst)) + if (!Store->isSimple()) + return invalid<ReportNonSimpleMemoryAccess>(Context, /*Assert=*/true, + &Inst); + return isValidMemoryAccess(Inst, Context); } |