This is an archive of the discontinued LLVM Phabricator instance.

[VPlan] Make VPWidenMemoryInstructionRecipe a VPDef.
ClosedPublic

Authored by fhahn on Nov 1 2020, 10:46 AM.

Details

Summary

This patch updates VPWidenMemoryInstructionRecipe to use VPDef
to manage the value it produces instead of inheriting from VPValue.

Diff Detail

Event Timeline

fhahn created this revision.Nov 1 2020, 10:46 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 1 2020, 10:46 AM
fhahn requested review of this revision.Nov 1 2020, 10:46 AM
fhahn updated this revision to Diff 302290.Nov 2 2020, 8:18 AM

Small changes to fix remaining test failures.

fhahn updated this revision to Diff 303237.Nov 5 2020, 1:02 PM

Updated to keep VPWidenMemoryInstructionRecipe a VPValue which is then added to its VPDef. This simplifies things a bit.

fhahn updated this revision to Diff 303449.Nov 6 2020, 7:22 AM

Update after VPDef does not inherit from VPUser directly.

fhahn added a comment.Dec 3 2020, 4:27 AM

ping :)

The main patches have already been approved (D90565, D90564) and this patch just updates VPWidenMemoryInstructionRecipe to be a single-value def.

gilr added inline comments.Dec 14 2020, 2:58 AM
llvm/lib/Transforms/Vectorize/VPlan.h
1273

With this recipe being a VPDef we can drop the VPValue inheritance and create a VPValue (only) for loads, right?

fhahn updated this revision to Diff 311551.Dec 14 2020, 4:28 AM

Thanks for taking a look Gil! Removed inheritance from VPValue, only create VPValue for loads.

llvm/lib/Transforms/Vectorize/VPlan.h
1273

That's a good point, we should be able to model this better now. Updated the patch

gilr accepted this revision.Dec 14 2020, 5:25 AM

LGTM, tx!

This revision is now accepted and ready to land.Dec 14 2020, 5:25 AM
This revision was landed with ongoing or failed builds.Dec 14 2020, 6:18 AM
This revision was automatically updated to reflect the committed changes.