[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