[PATCH] D13487: [Polly] Load/Store scalar accesses before/after the statement itself
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 15 09:13:49 PDT 2015
Meinersbur added a comment.
I could further investigate why why condition in generateScalarStores cannot be further simplified, but I don't think its worth bothering. http://reviews.llvm.org/D13762 should clean it all up.
================
Comment at: lib/CodeGen/BlockGenerators.cpp:1170
@@ -1127,1 +1169,3 @@
+ !DT.dominates(cast<Instruction>(Val)->getParent(), StmtExitBB))
+ continue;
----------------
Your proposed code fails Isl/CodeGen/phi_in_exit_early_lnt_failure_2.ll with assertion:
```
Assertion `!verifyGeneratedFunction(S, *EnteringBB->getParent()) && "Verification of generated function failed"' failed.
```
================
Comment at: test/Isl/CodeGen/non-affine-phi-node-expansion-3.ll:20-21
@@ -19,4 +19,4 @@
; CHECK-NEXT: %p_val2 = fadd float 1.000000e+00, 2.000000e+00
-; CHECK-NEXT: store float %p_val0, float* %merge.phiops
+; CHECK: store float %p_val0, float* %merge.phiops
branch1:
----------------
```
%val1.s2a.reload = load float, float* %val1.s2a
%val2.s2a.reload = load float, float* %val2.s2a
```
appeared because I modified the check in generateScalarLoads that originally was ```isa<PHINode>(Inst)```. The new condition also let loads through that are also not supposed to be there in the first place. I reinstated the original condition although I am not convinced it is correct There could be a legitimate PHI in the subregion's entry block.
Just to remind, this is going to be cleaned up in D13762 anyway.
http://reviews.llvm.org/D13487
More information about the llvm-commits
mailing list