[LLVMbugs] [Bug 23119] New: RegisterScavenger ignores kill flags on predicated instructions

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Apr 3 16:47:50 PDT 2015


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

            Bug ID: 23119
           Summary: RegisterScavenger ignores kill flags on predicated
                    instructions
           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: tobias at codeaurora.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

The RegisterScavenger explicitly ignores <kill> flags on operands of predicated
instructions and therefore assumes that such registers remain live. When it
then scavenges such a register, it inserts a spill of this (killed) register.
This is invalid code and gets flagged up by the verifier.

RegisterScavenging.cpp includes a comment that explains why it ignores flags on
predicated instructions:

// FIXME: The scavenger is not predication aware. If the instruction is
// predicated, conservatively assume "kill" markers do not actually kill the
// register. Similarly ignores "dead" markers.

Is this still needed for any target? 

Just removing the special handling of predicated instructions would seem an
easy way 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/20150403/d64c427d/attachment.html>


More information about the llvm-bugs mailing list