diff --git a/lib/Target/PTX/PTXISelLowering.cpp b/lib/Target/PTX/PTXISelLowering.cpp index 44733ac4910..c439d4c1731 100644 --- a/lib/Target/PTX/PTXISelLowering.cpp +++ b/lib/Target/PTX/PTXISelLowering.cpp @@ -399,19 +399,11 @@ PTXTargetLowering::LowerCall(SDValue Chain, SDValue Callee, Ops[0] = Chain; // Identify the callee function - if (GlobalAddressSDNode *G = dyn_cast(Callee)) { - const GlobalValue *GV = G->getGlobal(); - if (const Function *F = dyn_cast(GV)) { - assert(F->getCallingConv() == CallingConv::PTX_Device && - "PTX function calls must be to PTX device functions"); - Callee = DAG.getTargetGlobalAddress(GV, dl, getPointerTy()); - Ops[Ins.size()+1] = Callee; - } else { - assert(false && "GlobalValue is not a function"); - } - } else { - assert(false && "Function must be a GlobalAddressSDNode"); - } + const GlobalValue *GV = cast(Callee)->getGlobal(); + assert(cast(GV)->getCallingConv() == CallingConv::PTX_Device && + "PTX function calls must be to PTX device functions"); + Callee = DAG.getTargetGlobalAddress(GV, dl, getPointerTy()); + Ops[Ins.size()+1] = Callee; // Generate STORE_PARAM nodes for each function argument. In PTX, function // arguments are explicitly stored into .param variables and passed as