This is an archive of the discontinued LLVM Phabricator instance.

[PowerPC] Remove redundant spill/reload of callee saved vector registers
ClosedPublic

Authored by tingwang on Sep 7 2022, 6:39 PM.

Details

Summary

This is AIX part of update after https://reviews.llvm.org/D117225

Fixed the issue that AIX64 with vector pair enabled saw redundant spill/reload of callee saved vector registers.

I will pre-commit the base test case after finalize. Right now the diff shows the error on AIX64

Based on original patch by: Kai Luo

Diff Detail

Event Timeline

tingwang created this revision.Sep 7 2022, 6:39 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 7 2022, 6:39 PM
tingwang requested review of this revision.Sep 7 2022, 6:39 PM
tingwang edited the summary of this revision. (Show Details)Sep 7 2022, 7:46 PM
lkail added inline comments.Sep 7 2022, 10:25 PM
llvm/test/CodeGen/PowerPC/aix64-vector-pair-cc-spills.ll
73–80

Please include all spill slot information for each register.

tingwang updated this revision to Diff 458931.Sep 8 2022, 5:43 PM

Address comments: update test case to include more information.

tingwang updated this revision to Diff 459612.Sep 12 2022, 6:20 PM

Drop change related with CallingConv::AnyReg, which seems not supported on AIX.

tingwang updated this revision to Diff 459632.Sep 12 2022, 7:43 PM

Update base test case:
Use CHECK-LABEL to match function name.

tingwang updated this revision to Diff 460323.Sep 15 2022, 1:33 AM

Added virtual call case to show improvement.

tingwang updated this revision to Diff 460619.Sep 15 2022, 8:28 PM

Update base test case.

lkail accepted this revision as: lkail.Sep 28 2022, 11:51 PM

LGTM.

This revision is now accepted and ready to land.Sep 28 2022, 11:51 PM
This revision was landed with ongoing or failed builds.Oct 8 2022, 10:24 PM
This revision was automatically updated to reflect the committed changes.