[PATCH] Generate warning when explicitly specified vectorization fails

Diego Novillo dnovillo at google.com
Thu Jul 3 09:23:12 PDT 2014


On 2/07/2014, 22:17 , Tyler Nowicki wrote:

> @@ -1241,8 +1258,7 @@
>      LoopVectorizationLegality LVL(L, SE, DL, DT, TLI, F);
>      if (!LVL.canVectorize()) {
>        DEBUG(dbgs() << "LV: Not vectorizing: Cannot prove legality.\n");
> -      emitOptimizationRemarkMissed(F->getContext(), DEBUG_TYPE, *F,
> -                                   L->getStartLoc(), Hints.emitRemark());
> +      emitMissedWarning(F, L, Hints);

This change is raising the severity of this diagnostic. Do we really 
want to cause build failures in this situation when the code is built 
with -Werror?

I think I would be fine with it, if this diagnostic was only triggered 
when the user specified a #pragma, but if the failure is in the 
vectorizer, with no hints from the user, then I think a warning is too 
strong. Even when using #pragma, I'm not sure I'd like a warning here.

>        return false;
>      }
>
> @@ -1276,8 +1292,7 @@
>        emitOptimizationRemarkAnalysis(
>            F->getContext(), DEBUG_TYPE, *F, L->getStartLoc(),
>            "loop not vectorized due to NoImplicitFloat attribute");
> -      emitOptimizationRemarkMissed(F->getContext(), DEBUG_TYPE, *F,
> -                                   L->getStartLoc(), Hints.emitRemark());
> +      emitMissedWarning(F, L, Hints);

Likewise.


Diego.



More information about the llvm-commits mailing list