[PATCH] D15706: [Polly] Follow uses to create value MemoryAccesses

Mailing List "llvm-commits" via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 21 17:39:31 PST 2015


llvm-commits added a comment.

> +; TODO: Because of the phi with 3 incoming blocks, the loop for => outofscop is 

>  +; not recognized as a loop, but as a non-affine subregion.


My guess would be this is because ScalarEvolution cannot create an
AddRec for %j. PHIs with multiple incoming blocks are generally not a
problem.

> +

>  +define void @func(i32 %n, double* nonnull noalias %A) {

>  +entry:

>  +  br label %for

>  +

>  +for:

>  +  %phi = phi double [0.0, %entry], [0.0, %inc], [%phi, %outofscop]

>  +  %j = phi i32 [0, %entry], [%j.inc, %inc], [0, %outofscop]

>  +  %j.cmp = icmp slt i32 %j, %n

>  +  br i1 %j.cmp, label %body, label %outofscop

>  +

>  +body:

>  +  store double 4.2, double* %A

>  +  br label %inc

>  +

>  +inc:

>  +  %j.inc = add nuw nsw i32 %j, 1

>  +  br label %for

>  +

>  +outofscop:

>  +  fence seq_cst

>  +  br i1 true, label %return, label %for

>  +

>  +return:

>  +  ret void

>  +}




- F1225397: signature.asc <http://reviews.llvm.org/F1225397>
- F1225396: msg-2084-335.txt <http://reviews.llvm.org/F1225396>


http://reviews.llvm.org/D15706





More information about the llvm-commits mailing list