[polly] r250411 - Do not add accesses for intra-ScopStmt scalar def-use chains

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 15 11:10:00 PDT 2015


On 10/15/2015 04:45 PM, Michael Kruse via llvm-commits wrote:
> Author: meinersbur
> Date: Thu Oct 15 09:45:48 2015
> New Revision: 250411
>
> URL: http://llvm.org/viewvc/llvm-project?rev=250411&view=rev
> Log:
> Do not add accesses for intra-ScopStmt scalar def-use chains
>
> When pulling a llvm::Value to be written as a PHI write, the former
> code did only check whether it is within the same basic block, but it
> could also be the same non-affine subregion. In that case some
> unecessary pair of MemoryAccesses would have been created.
>
> Two unit test were explicitely checking for the unecessary writes,
> including the comments that the writes are unecessary.

Thank you Michael for fixing this.

> --- polly/trunk/test/Isl/CodeGen/non-affine-phi-node-expansion-3.ll (original)
> +++ polly/trunk/test/Isl/CodeGen/non-affine-phi-node-expansion-3.ll Thu Oct 15 09:45:48 2015
> @@ -18,12 +18,6 @@ loop:
>   ; CHECK-NEXT: %p_val1 = fadd float 1.000000e+00, 2.000000e+00
>   ; CHECK-NEXT: %p_val2 = fadd float 1.000000e+00, 2.000000e+00
>   ; CHECK-NEXT: store float %p_val0, float* %merge.phiops
> -; CHECK-NEXT: store float %p_val1, float* %val1.s2a
> -; CHECK-NEXT: store float %p_val2, float* %val2.s2a
> -
> -; FIXME -> The last two writes are not really needed and can be dropped if the
> -;          incoming block of the PHI and the value that is used share the same
> -;          non-affine region.

By just dropping the CHECK lines we do not really verify that the 
instruction is not generated any more. I added in r250435 the
'CHECK-NEXT: br i1' lines back that ensure the one store checked for
is indeed the only store emitted.

Best,
Tobias



More information about the llvm-commits mailing list