[PATCH] D68082: [LV] Emitting SCEV checks with OptForSize

Ayal Zaks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 5 11:10:26 PDT 2019


Ayal added a comment.

The other suggested fix in LoopAccessInfo::collectStridedAccess() indeed deserves a separate patch, being an optimization opportunity rather than preventing an assert -- it's stride predicate is added early enough to be caught by CM.computeMaxVF()'s bailout conditions and avoid assert, as scev4stride1() test in above X86/optsize.ll checks.



================
Comment at: llvm/test/Transforms/LoopVectorize/X86/optsize.ll:7
 ; RUN: opt < %s -loop-vectorize -S -mtriple=x86_64-unknown-linux -mcpu=skx | FileCheck %s --check-prefix AUTOVF
+; RUN: opt < %s -loop-vectorize -S | FileCheck %s --check-prefix=NO-SCEV-PREDS
 
----------------
Can one or both existing RUN's above be (re)used instead of adding a third?


================
Comment at: llvm/test/Transforms/LoopVectorize/X86/optsize.ll:201
+
+; PR43371: don't run in an assert while emitting SCEV runtime checks
+; with OptForSize.
----------------
run in an >> run into an

while >> due to


================
Comment at: llvm/test/Transforms/LoopVectorize/X86/optsize.ll:232
+
+for.body29:
+  %i24.0170 = phi i16 [ 0, %for.cond.for.cond.cleanup_crit_edge ], [ %inc37, %for.inc36 ]
----------------
simplify the test: entry block can branch directly to the loop header block.


================
Comment at: llvm/test/Transforms/LoopVectorize/X86/optsize.ll:240
+
+for.inc36:
+  %inc37 = add i16 %i24.0170, 1
----------------
simplify the test: merge the two blocks of the loop into one.


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

https://reviews.llvm.org/D68082





More information about the llvm-commits mailing list