[Patch][LoopVectorize] Late evaluate of runtime pointer check's threshold

Hal Finkel via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 9 21:41:41 PDT 2015


Hi Tyler,

This looks very useful.

Please don't mention '-mllvm -runtime-memory-check-threshold=' in the error message. We should add some clause to #pragma clang loop to control this feature with some associated metadata. '-mllvm' things should not be part of the advertised interface to end users (but that should be a separate set of patches regardless).

Otherwise, LGTM.

Thanks again,
Hal

----- Original Message -----
> From: "Tyler Nowicki" <tnowicki at apple.com>
> To: "Hal J. Finkel" <hfinkel at anl.gov>, "Commit Messages and Patches for LLVM" <llvm-commits at lists.llvm.org>, "llvm
> cfe" <cfe-commits at lists.llvm.org>
> Cc: "Gerolf Hoflehner" <ghoflehner at apple.com>
> Sent: Thursday, August 6, 2015 3:25:26 PM
> Subject: [Patch][LoopVectorize] Late evaluate of runtime pointer check's threshold
> 
> 
> 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
> 
> 
> 
> 
> 
> 
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory


More information about the llvm-commits mailing list