When splitting values, CallLowering assumes Lo part goes first. But in big endian ISA such as M68k, Hi part goes first.
This patch fixes this.
Paths
| Differential D116877
[GlobalISel] Add big endian support in CallLowering ClosedPublic Authored by 0x59616e on Jan 8 2022, 8:33 PM.
Details Summary When splitting values, CallLowering assumes Lo part goes first. But in big endian ISA such as M68k, Hi part goes first. This patch fixes this.
Diff Detail
Event Timeline
0x59616e added a parent revision: D115874: [M68k][GlobalISel] Implement lowerCall based on M68k calling convention.Jan 11 2022, 3:57 PM 0x59616e retitled this revision from [GlobalISel] Fix a big-endian-related bug in CallLowering to [GlobalISel] Add big endian support in CallLowering. Comment Actionsupdate diff. Remove a test in this revision, since that test depends on the InstructionSelector of M68k and I defer that part. This revision is now accepted and ready to land.Jan 17 2022, 4:52 PM 0x59616e removed a parent revision: D115874: [M68k][GlobalISel] Implement lowerCall based on M68k calling convention.Feb 3 2022, 11:35 PM 0x59616e added a parent revision: D115874: [M68k][GlobalISel] Implement lowerCall based on M68k calling convention.Feb 4 2022, 12:18 AM Comment Actions
I think now it's ok to land this. name: Sheng This revision was landed with ongoing or failed builds.Feb 8 2022, 6:43 AM Closed by commit rG76c83e747f28: [GlobalISel] Add big endian support in CallLowering (authored by 0x59616e, committed by RKSimon). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 406802 llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
llvm/test/CodeGen/M68k/GlobalISel/irtranslator-ret.ll
|
Can hoist the TLI query out of the loop