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.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp
index 6defb4f1bb9..c1a30b9bad4 100644
--- a/polly/lib/Analysis/ScopInfo.cpp
+++ b/polly/lib/Analysis/ScopInfo.cpp
@@ -2042,6 +2042,22 @@ void ScopStmt::removeSingleMemoryAccess(MemoryAccess *MA) {
}
}
+MemoryAccess *ScopStmt::ensureValueRead(Value *V) {
+ MemoryAccess *Access = lookupInputAccessOf(V);
+ if (Access)
+ return Access;
+
+ ScopArrayInfo *SAI =
+ Parent.getOrCreateScopArrayInfo(V, V->getType(), {}, MemoryKind::Value);
+ Access = new MemoryAccess(this, nullptr, MemoryAccess::READ, V, V->getType(),
+ true, {}, {}, V, MemoryKind::Value);
+ Parent.addAccessFunction(Access);
+ Access->buildAccessRelation(SAI);
+ addAccess(Access);
+ Parent.addAccessData(Access);
+ return Access;
+}
+
raw_ostream &polly::operator<<(raw_ostream &O, const ScopStmt &S) {
S.print(O, PollyPrintInstructions);
return O;
OpenPOWER on IntegriCloud