Hi, I’ve been working on the vectorization diagnostics a little more. The first patch makes sure the analysis diagnostics are printed unless a disabling hint is provided. And the two pairs of LLVM and Clang patches make the diagnostic messages easier to understand and extend the vectorize(enable) hint to override the mem-pointer check threshold.
The new diagnostics are: remark: loop not vectorized: cannot prove it is safe to reorder floating-point operations; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math’. and remark: loop not vectorized: cannot prove it is safe to reorder memory operations; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume_safety)' before the loop or provide the '__restrict__' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied! Using 'vectorize(enable)' to reorder memory operations is always safe (but not for fp ops), where as using 'vectorize(assume_safety)' might be dangerous. I removed the references to the mem-check threshold because I realized only compiler developers would know what it means. Feedback is appreciated! Tyler
LLVM-1-LoopVectorizeHints-produces-the-appropriate-pass-name.patch
Description: Binary data
LLVM-2-Modify-diagnostics-to-use-reordering-concept.patch
Description: Binary data
Clang-2-Modify-diagnostics-to-use-reordering-concept.patch
Description: Binary data
LLVM-3-Allow-hint-to-override-memcheck-threshold.patch
Description: Binary data
Clang-3-Allow-hint-to-override-memcheck-threshold.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits