summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--polly/lib/Analysis/ScopInfo.cpp6
-rw-r--r--polly/test/ScopInfo/remarks.ll3
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.
OpenPOWER on IntegriCloud