diff options
| -rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 6 | ||||
| -rw-r--r-- | polly/test/ScopInfo/remarks.ll | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 3bfb07a0d73..5b6cd49c259 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -2381,6 +2381,7 @@ bool Scop::buildAliasGroups(AliasAnalysis &AA) { isl_set_free(AGDomain); } + auto &F = *getRegion().getEntry()->getParent(); MapVector<const Value *, SmallPtrSet<MemoryAccess *, 8>> ReadOnlyPairs; SmallPtrSet<const Value *, 4> NonReadOnlyBaseValues; for (AliasGroupTy &AG : AliasGroups) { @@ -2393,6 +2394,11 @@ bool Scop::buildAliasGroups(AliasAnalysis &AA) { } for (auto II = AG.begin(); II != AG.end();) { + emitOptimizationRemarkAnalysis( + F.getContext(), DEBUG_TYPE, F, + (*II)->getAccessInstruction()->getDebugLoc(), + "Possibly aliasing pointer, use restrict keyword."); + Value *BaseAddr = (*II)->getBaseAddr(); if (HasWriteAccess.count(BaseAddr)) { NonReadOnlyBaseValues.insert(BaseAddr); diff --git a/polly/test/ScopInfo/remarks.ll b/polly/test/ScopInfo/remarks.ll index 2f1a97840c8..c27c973f76b 100644 --- a/polly/test/ScopInfo/remarks.ll +++ b/polly/test/ScopInfo/remarks.ll @@ -1,6 +1,9 @@ ; RUN: opt %loadPolly -pass-remarks-analysis="polly-scops" -polly-scops < %s 2>&1| FileCheck %s ; ; CHECK: remark: test/ScopInfo/remarks.c:4:7: SCoP begins here. +; CHECK: remark: test/ScopInfo/remarks.c:9:18: Possibly aliasing pointer, use restrict keyword. +; CHECK: remark: test/ScopInfo/remarks.c:9:33: Possibly aliasing pointer, use restrict keyword. +; CHECK: remark: test/ScopInfo/remarks.c:9:15: Possibly aliasing pointer, use restrict keyword. ; CHECK: remark: test/ScopInfo/remarks.c:14:3: SCoP ends here. ; CHECK: remark: test/ScopInfo/remarks.c:19:3: SCoP begins here. ; CHECK: remark: test/ScopInfo/remarks.c:22:16: SCoP ends here but was dismissed. |

