[LLVMbugs] [Bug 13708] New: Wrong frame layout on PowerPC64
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Aug 27 08:39:19 PDT 2012
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: unassignedbugs at nondot.org
ReportedBy: rdivacky at freebsd.org
CC: llvmbugs at cs.uiuc.edu
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.
More information about the llvm-bugs
mailing list