[PATCH] D12062: Allow values to cause memory accesses
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 16 10:23:21 PDT 2015
Meinersbur added a comment.
Can you please explain what "hacks" you are referring to?
================
Comment at: include/polly/ScopInfo.h:246
@@ -245,3 +245,3 @@
- /// @brief The access instruction of this memory access.
- Instruction *Inst;
+ /// @brief The access value that caused this memory access.
+ Value *AccessValue;
----------------
llvm::Value (e.g. a constant) cannot "cause" accesses.
I think this is bad modelling. A memory access is an effect that happens at some point. Non-instructions do not have such a property. there're passive.
================
Comment at: lib/Analysis/ScopInfo.cpp:970
@@ -974,1 +969,3 @@
+ if (StoreMA->isScalar())
+ continue;
if (StoreMA->isRead())
----------------
Why is this suddenly necessary?
================
Comment at: lib/Analysis/TempScopInfo.cpp:148
@@ -147,3 @@
- if (!OpI)
- OpI = OpBB->getTerminator();
-
----------------
I don't see how removing this can work. The .phiops location needs to be written somewhere in the incoming block. If not the terminator, who is it?
================
Comment at: lib/CodeGen/BlockGenerators.cpp:1141
@@ -1142,1 +1140,3 @@
+ if (PHIIdx < 0)
+ continue;
ScalarAddr = getOrCreateAlloca(ScalarBase, PHIOpMap, ".phiops");
----------------
Why did PHIIdx < 0 become possible here, but not in the non-NonAffine case?
http://reviews.llvm.org/D12062
More information about the llvm-commits
mailing list