[llvm-bugs] [Bug 37222] New: SROA emits too small debug fragments for padded types (e.g. long double on x86)

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Apr 24 01:49:22 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=37222

            Bug ID: 37222
           Summary: SROA emits too small debug fragments for padded types
                    (e.g. long double on x86)
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: david.stenberg at ericsson.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 20218
  --> https://bugs.llvm.org/attachment.cgi?id=20218&action=edit
IR reproducer.

When running SROA on the attached reproducer, the pass emits 80-bit wide
fragments for the long double elements, that are aligned to 128 bits.
As the alignment is included in the long double's DW_AT_byte_size size,
the fragments should also include it.

Can be reproduced using:

  $ opt -sroa -S -o - sroa.ll | grep fragment
  call void @llvm.dbg.value(metadata x86_fp80 %0, metadata !28, metadata
!DIExpression(DW_OP_LLVM_fragment, 0, 80)), !dbg !32
  call void @llvm.dbg.value(metadata x86_fp80 %1, metadata !28, metadata
!DIExpression(DW_OP_LLVM_fragment, 128, 80)), !dbg !32

A similar change was made to GlobalOpt in: https://reviews.llvm.org/D42807.
However, in this case I'm not sure how SROA should distinguish the cases where
you want the padding to be included in the fragment, and the cases where it
should be omitted (e.g. https://bugs.llvm.org/show_bug.cgi?id=35447).

-- 
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/20180424/bc982f7c/attachment-0001.html>


More information about the llvm-bugs mailing list