[llvm-bugs] [Bug 26589] New: Live range for register DBG_VALUEs extends across register mask clobbers

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Feb 11 17:59:08 PST 2016


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

            Bug ID: 26589
           Summary: Live range for register DBG_VALUEs extends across
                    register mask clobbers
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Common Code Generator Code
          Assignee: unassignedbugs at nondot.org
          Reporter: rnk at google.com
                CC: aprantl at apple.com, llvm-bugs at lists.llvm.org
    Classification: Unclassified

Consider:

void __attribute__((noinline)) clobber() { asm volatile("xor %edi, %edi"); }
int main(int argc, char **argv) { clobber(); }

Clang emits dwarf that shows that argc is in EDI and it is live across the
entire body of main. This is not true, it is clobbered by the call to clobber.
Our current code only stops live ranges on direct register definitions, not
call register masks.

Iterating over register mask clobbers should be enough to fix this.

-- 
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/20160212/fa603ebb/attachment.html>


More information about the llvm-bugs mailing list