This is an archive of the discontinued LLVM Phabricator instance.

AArch64: support @llvm.va_copy in GISel
ClosedPublic

Authored by t.p.northover on Aug 4 2021, 4:12 AM.

Details

Reviewers
paquette
Summary

It's essentially just a memcpy of some platform-depenent constant number of bytes. This puts the code in the Legalizer so that the (potentially fairly large) memory operations can be split up properly.

Diff Detail

Event Timeline

t.p.northover created this revision.Aug 4 2021, 4:12 AM
t.p.northover requested review of this revision.Aug 4 2021, 4:12 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 4 2021, 4:12 AM
paquette added inline comments.Aug 4 2021, 9:51 AM
llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
959

slightly more succinct

966

SDAG sets Align to be the pointer size here. Should we do that too?

t.p.northover marked an inline comment as done.

Adopted suggested changes. The align one didn't actually change the MIR output unfortunately so I don't tihnk it's really testable.

paquette accepted this revision.Aug 9 2021, 9:50 AM

LGTM

This revision is now accepted and ready to land.Aug 9 2021, 9:50 AM
t.p.northover closed this revision.Aug 10 2021, 5:11 AM

Thanks, committed as 5ad086089962.

llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
966

Oh yes, well spotted!