[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