mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-21 03:32:21 +00:00
Fix a bug in the previous patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31342 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7da52b295b
commit
a90a24c623
@ -6787,13 +6787,16 @@ Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) {
|
||||
Instruction *FirstInst = cast<Instruction>(PN.getIncomingValue(0));
|
||||
assert(isa<BinaryOperator>(FirstInst) || isa<ShiftInst>(FirstInst));
|
||||
unsigned Opc = FirstInst->getOpcode();
|
||||
const Type *LHSType = FirstInst->getOperand(0)->getType();
|
||||
|
||||
// Scan to see if all operands are the same opcode, all have one use, and all
|
||||
// kill their operands (i.e. the operands have one use).
|
||||
unsigned NumValues = PN.getNumIncomingValues();
|
||||
for (unsigned i = 0; i != NumValues; ++i) {
|
||||
for (unsigned i = 0; i != PN.getNumIncomingValues(); ++i) {
|
||||
Instruction *I = dyn_cast<Instruction>(PN.getIncomingValue(i));
|
||||
if (!I || I->getOpcode() != Opc || !I->hasOneUse())
|
||||
if (!I || I->getOpcode() != Opc || !I->hasOneUse() ||
|
||||
// Verify type of the LHS matches so we don't fold setcc's of different
|
||||
// types.
|
||||
I->getOperand(0)->getType() != LHSType)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user