This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: support swifterror on AArch64
ClosedPublic

Authored by t.p.northover on May 22 2019, 4:37 AM.

Details

Reviewers
aemerson
Summary

This adds the necessary hooks to GlobalISel so that swifterror values can be lowered correctly (essentially, promoted from memory to registers at CodeGen time). Support is also added to AArch64 as an example.

Most of the code can be reused (after refactoring) from SelectionDAG, so there are surprisingly few modifications.

Diff Detail

Event Timeline

t.p.northover created this revision.May 22 2019, 4:37 AM
aemerson accepted this revision.May 23 2019, 9:37 AM

LGTM with test nit.

llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll
1

-fast-isel-sink-local-values unnecessary?

This revision is now accepted and ready to land.May 23 2019, 9:37 AM
t.p.northover closed this revision.May 24 2019, 1:37 AM

Thanks Amara, committed as r361608 with the suggested fix.