diff options
Diffstat (limited to 'polly/lib/Analysis/ScopInfo.cpp')
| -rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 16 |
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; |

