fix a latent bug my inline asm stuff exposed:
MachineOperand::isIdenticalTo wasn't handling metadata operands. llvm-svn: 100636
This commit is contained in:
parent
3b4abb6792
commit
f839ee0c13
|
@ -192,6 +192,8 @@ bool MachineOperand::isIdenticalTo(const MachineOperand &Other) const {
|
|||
return getBlockAddress() == Other.getBlockAddress();
|
||||
case MachineOperand::MO_MCSymbol:
|
||||
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…
Reference in New Issue