[PATCH] D68814: [LV] Allow assume calls in predicated blocks.

Hideki Saito via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 14 10:53:00 PDT 2019


hsaito added a comment.

In D68814#1707477 <https://reviews.llvm.org/D68814#1707477>, @Ayal wrote:

> If conditional assumes are to be dropped, better do so on entry to VPlan, as in DeadInstructions, rather than representing them in ReplicateRecipe (as do unconditional assumes) and silencing their code generation.
>
> To retain conditional assumes along with their control flow, they could be marked under isScalarWithPredication; but this complicates vectorization, plus what use are such assumes when all else is if-converted(?)
>
> Conditional assumes under uniform control flow could be retained, along with the uniform control flow they depend upon; this may be mostly relevant for outerloop vectorization.


To be more precise:

Assumes should be dropped at the time the vectorizer makes the incompatible decision ---- i.e. a assume is no longer "to be guarded" by the original (per-element or uniform) condition. Right now, in the non-VPlan-native path, recording of the decisions already made happens at entry to VPlan.  In the VPlan native path, this would be VPlan to VPlan xform, as the decisions are recorded as they are made.



================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:156
 using namespace llvm;
 
+using namespace PatternMatch;
----------------
Do we want to keep this white space?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68814/new/

https://reviews.llvm.org/D68814





More information about the llvm-commits mailing list