[LLVMbugs] [Bug 10125] New: debug variables incorrectly deleted by LLVM in the Live Debug Variables pass

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Jun 12 00:33:27 PDT 2011


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

           Summary: debug variables incorrectly deleted by LLVM in the
                    Live Debug Variables pass
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Common Code Generator Code
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: yousef.shajrawi at amd.com
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=6728)
 --> (http://llvm.org/bugs/attachment.cgi?id=6728)
simple OpenCL kernel exibiting this bug

There is a problem with handling DEBUG_VALUE in the method
LDVImpl::collectDebugValues in the Live Debug Variables pass.

The 7th basic block in the kernel vecMul had the DEBUG_VALUE as the first line
in the basic block. Attached to vreg9 which is first defined in this basic
block (1st instruction).

handleDebugValue() returned true and the debug value was erased from the basic
block. In later passes vreg9 is replaced with vreg31 (simple register
coalescing) and later on vreg31 is removed all together (register allocation)
thus removing line #7 from the basic block.

A change is needed for the method LDVImpl::collectDebugValues to handle
DBG_VALUE that has no slot index / use the previous instruction instead &
Handle consecutive DBG_VALUE instructions with the same slot index as follows:

  • In case the target/register operand of the DBG_VALUE is a live in of the
basic block (as it is the regular usual case, for example in the prolog BB and
the variables passed to the kernel)
    o work as usual / previous behavior..
  • Else (the bug described above)
    o Do not erase the DEBUG_VALUE instruction from the basic block

-- 
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