summaryrefslogtreecommitdiffstats
path: root/llvm/docs/Vectorizers.rst
diff options
context:
space:
mode:
authorAyal Zaks <ayal.zaks@intel.com>2017-05-23 07:08:02 +0000
committerAyal Zaks <ayal.zaks@intel.com>2017-05-23 07:08:02 +0000
commit589e1d9610d1eed8e06c9424c4726a504d43391c (patch)
tree6a93025d7d662eb14a3e2bb2b382c709119eb782 /llvm/docs/Vectorizers.rst
parent53fc355e7d4c3a6cef1d8ebdc5d7b35e61e7f9db (diff)
downloadbcm5719-llvm-589e1d9610d1eed8e06c9424c4726a504d43391c.tar.gz
bcm5719-llvm-589e1d9610d1eed8e06c9424c4726a504d43391c.zip
[LV] Report multiple reasons for not vectorizing under allowExtraAnalysis
The default behavior of -Rpass-analysis=loop-vectorizer is to report only the first reason encountered for not vectorizing, if one is found, at which time the vectorizer aborts its handling of the loop. This patch allows multiple reasons for not vectorizing to be identified and reported, at the potential expense of additional compile-time, under allowExtraAnalysis which can currently be turned on by Clang's -fsave-optimization-record and opt's -pass-remarks-missed. Removed from LoopVectorizationLegality::canVectorize() the redundant checking and reporting if we CantComputeNumberOfIterations, as LAI::canAnalyzeLoop() also does that. This redundancy is caught by a lit test once multiple reasons are reported. Patch initially developed by Dror Barak. Differential Revision: https://reviews.llvm.org/D33396 llvm-svn: 303613
Diffstat (limited to 'llvm/docs/Vectorizers.rst')
-rw-r--r--llvm/docs/Vectorizers.rst4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/docs/Vectorizers.rst b/llvm/docs/Vectorizers.rst
index 65c19aa2bc0..a909d458c31 100644
--- a/llvm/docs/Vectorizers.rst
+++ b/llvm/docs/Vectorizers.rst
@@ -99,7 +99,9 @@ Optimization remarks are enabled using:
indicates if vectorization was specified.
``-Rpass-analysis=loop-vectorize`` identifies the statements that caused
-vectorization to fail.
+vectorization to fail. If in addition ``-fsave-optimization-record`` is
+provided, multiple causes of vectorization failure may be listed (this behavior
+might change in the future).
Consider the following loop:
OpenPOWER on IntegriCloud