teak-llvm/llvm/lib/Transforms/Vectorize
Mircea Trofin 06ac8cfbd1 Verify profile data confirms large loop trip counts.
Summary:
Loops with inequality comparers, such as:

   // unsigned bound
   for (unsigned i = 1; i < bound; ++i) {...}

have getSmallConstantMaxTripCount report a large maximum static
trip count - in this case, 0xffff fffe. However, profiling info
may show that the trip count is much smaller, and thus
counter-recommend vectorization.

This change:
- flips loop-vectorize-with-block-frequency on by default.
- validates profiled loop frequency data supports vectorization,
  when static info appears to not counter-recommend it. Absence
  of profile data means we rely on static data, just as we've
  done so far.

Reviewers: twoh, mkuper, davidxl, tejohnson, Ayal

Reviewed By: davidxl

Subscribers: bkramer, llvm-commits

Differential Revision: https://reviews.llvm.org/D42946

llvm-svn: 324543
2018-02-07 23:29:52 +00:00
..
CMakeLists.txt [LV] Fix PR34248 - recommit D32871 after revert r311304 2017-08-27 12:55:46 +00:00
LLVMBuild.txt
LoadStoreVectorizer.cpp Add explanatory comment to LoadStoreVectorizer. 2018-01-10 03:02:12 +00:00
LoopVectorizationPlanner.h Add missing includes 2018-02-02 00:11:09 +00:00
LoopVectorize.cpp Verify profile data confirms large loop trip counts. 2018-02-07 23:29:52 +00:00
SLPVectorizer.cpp [SLPVectorizer][NFC] Make a loop more readable. 2018-02-07 14:26:43 +00:00
Vectorize.cpp Remove redundant includes from lib/Transforms. 2017-12-13 21:31:01 +00:00
VPlan.cpp [LV] NFC patch for moving VP*Recipe class definitions from LoopVectorize.cpp to VPlan.h 2017-12-16 01:12:50 +00:00
VPlan.h [LV][VPlan] NFC patch to move LoopVectorizationPlanner class out of LoopVectorize.cpp 2018-01-07 16:02:58 +00:00
VPlanValue.h [LV] Model masking in VPlan, introducing VPInstructions 2017-11-20 12:01:47 +00:00