mirror of
https://github.com/RPCSX/llvm.git
synced 2025-04-10 12:11:13 +00:00
fix a latent bug my inline asm stuff exposed:
MachineOperand::isIdenticalTo wasn't handling metadata operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100636 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
96fbb3eea6
commit
24ad3ed71f
@ -192,6 +192,8 @@ bool MachineOperand::isIdenticalTo(const MachineOperand &Other) const {
|
|||||||
return getBlockAddress() == Other.getBlockAddress();
|
return getBlockAddress() == Other.getBlockAddress();
|
||||||
case MachineOperand::MO_MCSymbol:
|
case MachineOperand::MO_MCSymbol:
|
||||||
return getMCSymbol() == Other.getMCSymbol();
|
return getMCSymbol() == Other.getMCSymbol();
|
||||||
|
case MachineOperand::MO_Metadata:
|
||||||
|
return getMetadata() == Other.getMetadata();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,3 +92,19 @@ foo:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
; Crash commoning identical asms.
|
||||||
|
define void @test6(i1 %C) nounwind optsize ssp {
|
||||||
|
entry:
|
||||||
|
br i1 %C, label %do.body55, label %do.body92
|
||||||
|
|
||||||
|
do.body55: ; preds = %if.else36
|
||||||
|
call void asm sideeffect "foo", "~{dirflag},~{fpsr},~{flags}"() nounwind, !srcloc !0
|
||||||
|
ret void
|
||||||
|
|
||||||
|
do.body92: ; preds = %if.then66
|
||||||
|
call void asm sideeffect "foo", "~{dirflag},~{fpsr},~{flags}"() nounwind, !srcloc !1
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
!0 = metadata !{i32 633550}
|
||||||
|
!1 = metadata !{i32 634261}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user