[PATCH] D39068: [LV] Introduce VPBlendRecipe, VPWidenMemoryInstructionRecipe

Gil Rapaport via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 7 06:55:06 PST 2017


gilr added a comment.

In https://reviews.llvm.org/D39068#916829, @rengolin wrote:

> Excellent, ok, this patch is looking good to me now. How does this fit into the whole story?
>
> The other review (https://reviews.llvm.org/D38676) still has this patch inside, plus tests. Are you going to clean that up and move the tests here?
>
> It'd be good to have only the refactoring part there, and only the new plans here, with tests.


Ah, good catch - the LIT test case added in D38676 <https://reviews.llvm.org/D38676> actually belongs here too, as it makes sure the new tryToWidenMemory() takes sinkScalarOperands into account. Will transfer it to this patch. The slight modification to the other LIT in  D38676 <https://reviews.llvm.org/D38676> is related to the swtich to VPInstructions for masks which slightly change order in which the IR is generated.

An important part of D38676 <https://reviews.llvm.org/D38676> is the refactoring of createBlockInMask() and createEdgeMask() to use VPValues instead of Values as the move from ILV to Planner. Relocating those methods in this patch to their would-be location in D38676 <https://reviews.llvm.org/D38676> in an NFC for this patch and should greatly facilitate reviewing the changes made to those two methods. This will also be in the coming revision of this patch.
I'll rebase D38676 <https://reviews.llvm.org/D38676> on top of this patch - the diff in LoopVectorize.cpp will be smaller and  hopefully more tightly related to the new VPInstruction infrastructure.


https://reviews.llvm.org/D39068





More information about the llvm-commits mailing list