[PATCH] D17141: [ARM] Adding IEEE-754 SIMD detection to loop vectorizer
Hal Finkel via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 24 14:49:31 PST 2016
hfinkel added inline comments.
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:1859
@@ +1858,3 @@
+ << "non-IEEE-754 compliant SIMD for this target. Use "
+ "-ffast-math or add #pragma clang loop vectorize(enable).");
+ emitMissedWarning(F, L, Hints);
> hfinkel wrote:
> > This knowledge should live in the frontend. You can add proper diagnostic information subclass, and then catch it in the frontend to produce front-end specific information.
> Which knowledge?
> AFAICS, SIMD IEEE compliance should not be in the front-end, neither should be Darwin's compliance.
> The way I'm handling in the loop vectorizer is the same as with other restrictions, and it shouldn't affect SLP or other transformations, so moving this to the front-end will impact everything, not just this specific case.
The knowledge of which front-end flags (-ffast-math) and pragmas can change the behavior belongs in the frontend. The messages we send from the backend are often strings, but can be message subclasses that the frontend can interpret to provide frontend-specific information along with that provided by the back end. (I'll happily provide more details if you'd like when. I'm not working off my phone).
More information about the llvm-commits