Fix PR4528. This scavenger assertion is too strict. The two-address value is

killed by another operand.

There is probably a better fix. Either 1) scavenger can look at other operands, or
2) livevariables can be smarter about kill markers. Patches welcome.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78072 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2009-08-04 16:52:44 +00:00
parent 7145e9be64
commit 7d35249e89
2 changed files with 27 additions and 1 deletions

View File

@@ -267,7 +267,8 @@ void RegScavenger::forward() {
unsigned UseIdx;
if (MI->isRegTiedToUseOperand(Idx, &UseIdx) &&
!MI->getOperand(UseIdx).isUndef()) {
assert(isUsed(Reg) && "Using an undefined register!");
assert(!MI->getOperand(UseIdx).isKill() &&
"Using an undefined register!");
continue;
}