[LLVMbugs] [Bug 16126] New: [Win32] Incorrect alignment of spill slot

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu May 23 07:28:51 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=16126

            Bug ID: 16126
           Summary: [Win32] Incorrect alignment of spill slot
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: babokin at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 10571
  --> http://llvm.org/bugs/attachment.cgi?id=10571&action=edit
Reproducer

The bug is reproduced on Win32 only, as the platform has small (4-byte) stack
alignment, though the problem may show up on other platforms with small stack
alignment.

To reproduce:
>llvm-as test.ll
>llc test.bc -march=x86 -o test.s

Now check test.s, which contains the following instruction:
por    (%esp), %xmm2           # 16-byte Folded Reload

This is illegal, as %esp is aligned by 4, while por requires memory operand to
be aligned by 16 bytes. This causes an exception (an executable returns error
code -1073741819).

The stack slot is allocated as follows:

# *** IR Dump After Virtual Register Rewriter ***:
# Machine code for function f_fu: Post SSA
Frame Objects:
  fi#-3: size=4, align=4, fixed, at location [SP+12]
  fi#-2: size=4, align=4, fixed, at location [SP+8]
  fi#-1: size=4, align=4, fixed, at location [SP+4]
  fi#0: size=16, align=16, at location [SP+4] <<<<<<<<<<<<<<<< here's it.

But it's not clear to me how it can be SP based and aligned by 16, while SP is
aligned by 4.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130523/69a4cbe2/attachment.html>


More information about the llvm-bugs mailing list