[PATCH] D20695: Floating Point SCEV Analysis

Elena Demikhovsky via llvm-commits llvm-commits at lists.llvm.org
Thu May 26 11:37:25 PDT 2016


delena created this revision.
delena added reviewers: mzolotukhin, sanjoy, hfinkel, anemet, atrick, spatel.
delena added a subscriber: llvm-commits.
delena set the repository for this revision to rL LLVM.
Herald added subscribers: mzolotukhin, sanjoy.

As we already discussed in llvm-dev forum http://lists.llvm.org/pipermail/llvm-dev/2016-May/099724.html
I'm working on FP SCEV analysis in order to enable loop vectorization with FP induction variables.
Trying to minimize the first patch, I implemented only simple cases. Once this patch is accepted, I continue to fill the gaps between integer and fp scevs.

this is the minimal test case I started from:
float fp_inc;

  float x = init;
  for (int i=0;i<N;i++){
    A[i] = x;
    x += fp_inc; // Loop invariant variable or constant
  }

All optimizations and SCEV recurrence will come in the next patches. 
I ran some tests to be sure that correctness is not broken.

Repository:
  rL LLVM

http://reviews.llvm.org/D20695

Files:
  ../include/llvm/Analysis/ScalarEvolution.h
  ../include/llvm/Analysis/ScalarEvolutionExpander.h
  ../include/llvm/Analysis/ScalarEvolutionExpressions.h
  ../include/llvm/Transforms/Utils/LoopUtils.h
  ../lib/Analysis/IVUsers.cpp
  ../lib/Analysis/ScalarEvolution.cpp
  ../lib/Analysis/ScalarEvolutionExpander.cpp
  ../lib/Transforms/Scalar/IndVarSimplify.cpp
  ../lib/Transforms/Utils/LoopUtils.cpp
  ../lib/Transforms/Utils/SimplifyIndVar.cpp
  ../lib/Transforms/Vectorize/LoopVectorize.cpp
  ../test/Transforms/LoopVectorize/float-induction.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20695.58655.patch
Type: text/x-patch
Size: 75735 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160526/c8c57d3c/attachment.bin>


More information about the llvm-commits mailing list