diff options
author | Zvi Rackover <zvi.rackover@intel.com> | 2017-09-04 08:35:13 +0000 |
---|---|---|
committer | Zvi Rackover <zvi.rackover@intel.com> | 2017-09-04 08:35:13 +0000 |
commit | 9a087a357a4be44bb40f69f3e23a3e295f70f13e (patch) | |
tree | 6912a8eea740e79d05328ea5af7a45470027ded6 /llvm/lib/Target/X86/X86LegalizerInfo.cpp | |
parent | 7cd826a321d96af6581e0b1a5d6ec9ad26dcc6c1 (diff) | |
download | bcm5719-llvm-9a087a357a4be44bb40f69f3e23a3e295f70f13e.tar.gz bcm5719-llvm-9a087a357a4be44bb40f69f3e23a3e295f70f13e.zip |
LoopVectorize: MaxVF should not be larger than the loop trip count
Summary:
Improve how MaxVF is computed while taking into account that MaxVF should not be larger than the loop's trip count.
Other than saving on compile-time by pruning the possible MaxVF candidates, this patch fixes pr34438 which exposed the following flow:
1. Short trip count identified -> Don't bail out, set OptForSize:=True to avoid tail-loop and runtime checks.
2. Compute MaxVF returned 16 on a target supporting AVX512.
3. OptForSize -> choose VF:=MaxVF.
4. Bail out because TripCount = 8, VF = 16, TripCount % VF !=0 means we need a tail loop.
With this patch step 2. will choose MaxVF=8 based on TripCount.
Reviewers: Ayal, dorit, mkuper, hfinkel
Reviewed By: hfinkel
Subscribers: hfinkel, llvm-commits
Differential Revision: https://reviews.llvm.org/D37425
llvm-svn: 312472
Diffstat (limited to 'llvm/lib/Target/X86/X86LegalizerInfo.cpp')
0 files changed, 0 insertions, 0 deletions