[PATCH] [Reassociation] Add support for reassociation with unsafe algebra.

Chad Rosier mcrosier at codeaurora.org
Thu Aug 14 08:14:23 PDT 2014


> 1. Support swapping the operand order once SLP vectorizer is OK with it
>  I believe Erik addressed this here:
>  http://llvm.org/viewvc/llvm-project?view=revision&revision=214485

Further, I verified the fix and saw no other regressions.

> 2. Support for floating point vectors
> 3.  (maybe?) Support for integer vectors?
>
> I have a follow up patch that addresses both of these.
>
> ================
> Comment at: lib/Transforms/Scalar/Reassociate.cpp:884
> @@ +883,3 @@
> +      } else
> +        ExpressionChanged->clearSubclassOptionalData();
> +
> ----------------
> Chandler Carruth wrote:
>> Why not do this before or ofter the if, but outside of the if? It's
>> duplicated in both sides.
> The SubclassOptionalData contains the FastMathFlags, so we need to save
> and restore that state before we call clearSubclassOptionalData().  Also,
> the calls to getFastMathFlags() and setFastMathFlags() needs to be guarded
> by the isa<FPMathOperator> check.  Otherwise, we hit an assert.
>
> ================
> Comment at: lib/Transforms/Scalar/Reassociate.cpp:1968
> @@ -1849,1 +1967,3 @@
> +    if (I->getType()->isVectorTy() || !I->hasUnsafeAlgebra())
> +      return;
>    }
> ----------------
> I agree; I have a follow up patch that will take care of this..
>
> http://reviews.llvm.org/D4129
>
>
>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation




More information about the llvm-commits mailing list