This is an archive of the discontinued LLVM Phabricator instance.

[VPlan] Use VPValue def for VPWidenCall.
ClosedPublic

Authored by fhahn on Jul 27 2020, 10:36 AM.

Details

Summary

This patch turns VPWidenCall into a VPValue and uses it
during VPlan construction and codegeneration instead of the plain IR
reference where possible.

Diff Detail

Event Timeline

fhahn created this revision.Jul 27 2020, 10:36 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 27 2020, 10:36 AM
dmgreen added inline comments.
llvm/lib/Transforms/Vectorize/VPlan.h
857

VPUser too? Or is that simpler to do later?

861–862

VPRecipeBase(VPWidenCallSC) -> VPRecipeBase(VPRecipeBase::VPWidenCallSC). To make it explicit whilst there are two.

fhahn updated this revision to Diff 296226.Oct 5 2020, 10:49 AM
fhahn marked 2 inline comments as done.

Addressed @dmgreen's comment, thanks! Also updated code to just use shared VPRecipeBase::getUnderlyingInstr()

llvm/lib/Transforms/Vectorize/VPlan.h
861–862

done, thanks

dmgreen accepted this revision.Oct 6 2020, 1:30 AM

Looks straight forward enough.

This revision is now accepted and ready to land.Oct 6 2020, 1:30 AM
fhahn updated this revision to Diff 303404.Nov 6 2020, 4:49 AM

Change VPDef to not inherit from VPUser. This gives a bit more flexibility and VDef can probably be folded into VPRecipeBase after the transition is complete.

fhahn updated this revision to Diff 303826.Nov 9 2020, 4:38 AM

Rebased and fixed printing. I plan to commit this shortly, as all approaches discussed will require updating codegen & co to operate on VPValues, so those patches should be needed in any case.

fhahn updated this revision to Diff 303839.Nov 9 2020, 5:29 AM

rebase again

This revision was landed with ongoing or failed builds.Nov 9 2020, 5:41 AM
This revision was automatically updated to reflect the committed changes.