This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GlobalISel] Support tail calling with swiftself parameters
ClosedPublic

Authored by paquette on Sep 12 2019, 12:01 PM.

Details

Summary

Swiftself uses a callee-saved register. We can tail call when the register used in the caller and callee is the same.

This behaviour is equivalent to that in TargetLowering::parametersInCSRMatch.

Update call-translator-tail-call.ll to verify that we can do this. When we support inline assembly, we can write a check similar to the one in the general swiftself.ll. For now, we need to verify that we get the correct COPY instruction after call lowering.

Diff Detail

Event Timeline

paquette created this revision.Sep 12 2019, 12:01 PM
aemerson accepted this revision.Sep 12 2019, 2:51 PM

LGTM.

This revision is now accepted and ready to land.Sep 12 2019, 2:51 PM
This revision was automatically updated to reflect the committed changes.