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: [email protected]
Reporter: [email protected]
CC: [email protected]
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs