[Patch][LoopVectorize] Late evaluate of runtime pointer check's threshold
Tyler Nowicki via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 6 13:25:26 PDT 2015
Hi,
This patch extends the patches in 'Late evaluation of vectorization requirements’ (still in review). This makes the num runtime pointer checks test into a late diagnostic so we can give the user a better diagnostic message. Clang appends the diagnostic with options for getting the loop vectorized. Here is an example of the diagnostic the user will see:
"remark: loop not vectorized: cannot prove pointers refer to independent arrays in memory. The loop requires 9 runtime independence checks to safely vectorize the loop, but that would exceed the limit of 8 checks; increase the number of runtime pointer checks with the compiler option ‘-mllvm -runtime-memory-check-threshold=’. To avoid runtime pointer checking when you know the arrays will always be independent specify ‘#pragma clang loop vectorize(assume_safety)’ before the loop or specify ‘restrict’ on the array arguments. Erroneous results will occur if these options are incorrectly applied."
The diagnostic is produced when the command line option -Rpass-analysis=loop-vectorize is provided.
Reviews/comments are much appreciated!
Tyler
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150806/1bed884e/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LLVM-Extend-late-diagnostics-to-include-late-test-for-run.patch
Type: application/octet-stream
Size: 9423 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150806/1bed884e/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150806/1bed884e/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Clang-Extended-late-diagnostics-to-ammend-options-related-.patch
Type: application/octet-stream
Size: 5106 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150806/1bed884e/attachment-0001.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150806/1bed884e/attachment-0002.html>
More information about the llvm-commits
mailing list