[llvm-bugs] [Bug 25560] New: Emitting additional debug info would allow shrink-wrapping to be used on function with sanitize-like attribute

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Nov 17 14:10:03 PST 2015


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

            Bug ID: 25560
           Summary: Emitting additional debug info would allow
                    shrink-wrapping to be used on function with
                    sanitize-like attribute
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Common Code Generator Code
          Assignee: unassignedbugs at nondot.org
          Reporter: qcolombet at apple.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 15307
  --> https://llvm.org/bugs/attachment.cgi?id=15307&action=edit
Without shrink-wrapping

In r253116, we disabled shrink-wrapping on function having a sanitize-like
attribute.
The rational for that change was that the sanitizers need to be able to rebuild
the stack frame anywhere in function and the produced code before (resp. after)
the prologue (resp. epilogue) does not describe how to that.

Indeed, frame settings are defined with cfa directives when the frame pointer
gets actually pushed. However, before that we still have the information
available directly in the frame pointer register, but this is not expressed in
the debug info.

Assuming this is possible to emit such information, it would be nice to teach
the compiler how to do it and then reenable shrink-wrapping when sanitizers
come into play.

I’ve attached the assembly code of a function with and without shrink-wrapping
enable for compiler-rt/test/asan/TestCases/null_deref.cc.

-- 
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/20151117/b9b8c081/attachment.html>


More information about the llvm-bugs mailing list