Don't crash when a glue node contains an internal CopyToReg
This is necessary to support the existing ppc lowering code for indirect calls. Fixes PR12071. llvm-svn: 151373
This commit is contained in:
parent
3a08c1cd3b
commit
b9a3d61894
|
@ -766,6 +766,9 @@ EmitMachineNode(SDNode *Node, bool IsClone, bool IsCloned,
|
|||
if (F->getOpcode() == ISD::CopyFromReg) {
|
||||
UsedRegs.push_back(cast<RegisterSDNode>(F->getOperand(1))->getReg());
|
||||
continue;
|
||||
} else if (F->getOpcode() == ISD::CopyToReg) {
|
||||
// Skip CopyToReg nodes that are internal to the glue chain.
|
||||
continue;
|
||||
}
|
||||
// Collect declared implicit uses.
|
||||
const MCInstrDesc &MCID = TII->get(F->getMachineOpcode());
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
; RUN: llc < %s -march=ppc64 | FileCheck %s
|
||||
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64"
|
||||
target triple = "powerpc64-unknown-linux-gnu"
|
||||
|
||||
define void @test1() {
|
||||
entry:
|
||||
%call.i75 = call zeroext i8 undef(i8* undef, i8 zeroext 10)
|
||||
unreachable
|
||||
}
|
||||
|
||||
; CHECK: @test1
|
||||
|
Loading…
Reference in New Issue