[PATCH] D36113: [Loop Vectorize] Vectorize Loops with Backward Dependence

DIVYA SHANMUGHAN via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 31 14:26:35 PDT 2017


DIVYA created this revision.
Herald added subscribers: eraman, mgorny, mzolotukhin, mehdi_amini.

This is the LLVM pass which needs to be run before loop vectorizer. This pass checks if there is a backward dependence between instructions ,if so, then it tries to reorders instructions, so as to convert non-vectorizable loop into vectorizable form and generates target-independent LLVM-IR. The vectorizer uses the LoopAccessAnalysis  and MemorySSA  analysis to check for dependences, inorder to reorder the instructions.

Worked in collaboration with Aditya Kumar


https://reviews.llvm.org/D36113

Files:
  include/llvm/InitializePasses.h
  include/llvm/Transforms/IPO/PassManagerBuilder.h
  include/llvm/Transforms/Vectorize.h
  include/llvm/Transforms/Vectorize/LoopVectorizePred.h
  lib/Passes/PassBuilder.cpp
  lib/Passes/PassRegistry.def
  lib/Transforms/IPO/PassManagerBuilder.cpp
  lib/Transforms/Vectorize/CMakeLists.txt
  lib/Transforms/Vectorize/LoopVectorizePred.cpp
  lib/Transforms/Vectorize/Vectorize.cpp
  test/Other/new-pm-defaults.ll
  test/Other/new-pm-thinlto-defaults.ll
  test/Transforms/LoopVectorize/loop-with-backward-dependences.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36113.109000.patch
Type: text/x-patch
Size: 33802 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170731/c6920c8a/attachment.bin>


More information about the llvm-commits mailing list