[AIX] unset bit "IsBackChainStored" of traceback table for leaf functions with no...
authorzhijian <zhijian@ca.ibm.com>
Thu, 16 Mar 2023 19:26:12 +0000 (15:26 -0400)
committerzhijian <zhijian@ca.ibm.com>
Thu, 16 Mar 2023 19:26:12 +0000 (15:26 -0400)
commit49bc3077cbf848de6ce07e6f0da82476314924b4
treed97e92f924097d643074e0e3dffcbb573369a1fb
parent2e8ef93439a4a430fe5f96b9d999ce96405345f4
[AIX] unset bit "IsBackChainStored" of traceback table for leaf functions with no stack frame

Summary:

  In function PPCAIXAsmPrinter::emitTracebackTable() ,the bit "IsBackChainStored" of traceback
table always set true, it will cause aix debug tools "dbx" emit an error info
"libdebug assertion "(framep->getGpr(STKP, &addr) == DB_SUCCESS && *nextStkpp == addr)"
when debug a leaf functions with no stack frame.

If a a leaf functions with no stack frame , the bit IsBackChainStored should be unset.

Reviewers: ChenZheng
Differential Revision: https://reviews.llvm.org/D146071
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-clobber-register.ll
llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-redzone-boundary.mir [new file with mode: 0644]
llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo.ll
llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo_hasvarg.ll
llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll
llvm/test/DebugInfo/XCOFF/empty.ll
llvm/test/DebugInfo/XCOFF/explicit-section.ll
llvm/test/DebugInfo/XCOFF/function-sections.ll