[polly] r244606 - Revise the simplification of regions

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 12 01:02:31 PDT 2015


2015-08-12 9:53 GMT+02:00 Tobias Grosser <tobias at grosser.es>:
>> 2015-08-12 9:19 GMT+02:00 Michael Kruse <llvm at meinersbur.de>:
>> However, I prefer your solution number 2). I am not that familiar with
>> non-affine regions, but could the contains-check be removed entirely?
>
>
> Are you talking about:
>
> +    if (!R.contains(OpBB))
> +      continue;
>
> It can be removed, but it does not give us anything. What it ensures is
> that we do not create IRAccesses for BasicBlocks outside of the scop's
> region, as we ignore them later on anyhow. The important point is that
> the following piece of code is executed for the PHI node:
>
>  if (!OnlyNonAffineSubRegionOperands) {
>      IRAccess ScalarAccess(IRAccess::READ, PHI, ZeroOffset, 1, true,
>                            /* IsPHI */ true);
>      Functions.push_back(std::make_pair(ScalarAccess, PHI));
> }
>
> Which it is as soon as we set OnlyNonAffineSubRegionOperands to false.

Never mind. I was thinking about
OnlyNonAffineSubRegionOperands/Written being set independent of that
contains, but this is already the case.

I am still wondering why OnlyNonAffineSubRegionOperands depends on:

     if (NonAffineSubRegion && NonAffineSubRegion->contains(OpBB))
       continue;

Michael


More information about the llvm-commits mailing list