diff options
author | Jessica Paquette <jpaquette@apple.com> | 2019-09-10 23:25:12 +0000 |
---|---|---|
committer | Jessica Paquette <jpaquette@apple.com> | 2019-09-10 23:25:12 +0000 |
commit | 2af5b193d5e51409e20b85b62efdf743069ebb31 (patch) | |
tree | 8e04f3f9dbbf93b080402a7c110a9b0031b2addd /lldb/packages/Python/lldbsuite/test/python_api/sbstructureddata/TestStructuredDataAPI.py | |
parent | a6e0bef3124ba72d6631a99bbafb3da8ba17e8de (diff) | |
download | bcm5719-llvm-2af5b193d5e51409e20b85b62efdf743069ebb31.tar.gz bcm5719-llvm-2af5b193d5e51409e20b85b62efdf743069ebb31.zip |
[AArch64][GlobalISel] Support sibling calls with mismatched calling conventions
Add support for sibcalling calls whose calling convention differs from the
caller's.
- Port over `CCState::resultsCombatible` from CallingConvLower.cpp into
CallLowering. This is used to verify that the way the caller and callee CC
handle incoming arguments matches up.
- Add `CallLowering::analyzeCallResult`. This is basically a port of
`CCState::AnalyzeCallResult`, but using `ArgInfo` rather than `ISD::InputArg`.
- Add `AArch64CallLowering::doCallerAndCalleePassArgsTheSameWay`. This checks
that the calling conventions are compatible, and that the caller and callee
preserve the same registers.
For testing:
- Update call-translator-tail-call.ll to show that we can now handle this.
- Add a GISel line to tailcall-ccmismatch.ll to show that we will not tail call
when the regmasks don't line up.
Differential Revision: https://reviews.llvm.org/D67361
llvm-svn: 371570
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/sbstructureddata/TestStructuredDataAPI.py')
0 files changed, 0 insertions, 0 deletions