http://llvm.org/bugs/show_bug.cgi?id=13708
Bug #: 13708
Summary: Wrong frame layout on PowerPC64
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: PowerPC
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Classification: Unclassified
The stack frame layout does not comply with the ABI on PowerPC64.
In PPCFrameLowering::processFunctionBeforeFrameFinalized() we try to
setOffset() of the various objects on stack (ie. CR save area etc.) Not only we
do that wrong, we do it without any effect as all the offsets are immediately
overwritten by calculateFrameObjectOffsets() in PEI::runOnMachineFunction like
this:
// Allow the target machine to make final modifications to the function
// before the frame layout is finalized.
TFI->processFunctionBeforeFrameFinalized(Fn);
// Calculate actual frame offsets for all abstract stack objects...
calculateFrameObjectOffsets(Fn);
the first method calls into the PowerPC64 where the offsets are set and the
second one recomputes them.
This results in eg. .cfi_offset of cr2 save not being 8byte aligned when we
enable C++ exceptions (currently disabled on PPC64) so the file doesnt compile
etc.
Summary - the wrong frame layout prevents us from having C++ exceptions and cfi
based debugging info emitted.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs