Deal with cases when MMI is not requested.

llvm-svn: 34556
This commit is contained in:
Jim Laskey 2007-02-24 09:45:44 +00:00
parent b869ab6f31
commit e1d1c0590f
1 changed files with 14 additions and 0 deletions

View File

@ -2101,6 +2101,12 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
SDOperand Op = DAG.getNode(ISD::EXCEPTIONADDR, VTs, Ops, 1);
setValue(&I, Op);
DAG.setRoot(Op.getValue(1));
} else {
SDOperand Op = DAG.getNode(ISD::MERGE_VALUES, TLI.getPointerTy(),
DAG.getConstant(0, TLI.getPointerTy()),
DAG.getRoot());
setValue(&I, Op);
DAG.setRoot(Op.getValue(1));
}
return 0;
}
@ -2145,6 +2151,12 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
SDOperand Op = DAG.getNode(ISD::EHSELECTION, VTs, Ops, 2);
setValue(&I, Op);
DAG.setRoot(Op.getValue(1));
} else {
SDOperand Op = DAG.getNode(ISD::MERGE_VALUES, TLI.getPointerTy(),
DAG.getConstant(0, TLI.getPointerTy()),
getValue(I.getOperand(1)));
setValue(&I, Op);
DAG.setRoot(Op.getValue(1));
}
return 0;
@ -2169,6 +2181,8 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
unsigned TypeID = MMI->getTypeIDFor(GV);
setValue(&I, DAG.getConstant(TypeID, MVT::i32));
} else {
setValue(&I, DAG.getConstant(0, MVT::i32));
}
return 0;