reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGBuiltin.cpp
 1537   if (E->EvaluateAsRValue(Result, CGM.getContext()) &&
 1561       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::ceil));
 1571       return RValue::get(emitBinaryBuiltin(*this, E, Intrinsic::copysign));
 1580       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::cos));
 1589       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::exp));
 1598       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::exp2));
 1608       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::fabs));
 1617       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::floor));
 1626       return RValue::get(emitTernaryBuiltin(*this, E, Intrinsic::fma));
 1635       return RValue::get(emitBinaryBuiltin(*this, E, Intrinsic::maxnum));
 1644       return RValue::get(emitBinaryBuiltin(*this, E, Intrinsic::minnum));
 1655       Value *Arg1 = EmitScalarExpr(E->getArg(0));
 1656       Value *Arg2 = EmitScalarExpr(E->getArg(1));
 1667       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::log));
 1676       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::log10));
 1685       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::log2));
 1693       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::nearbyint));
 1702       return RValue::get(emitBinaryBuiltin(*this, E, Intrinsic::pow));
 1711       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::rint));
 1720       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::round));
 1729       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::sin));
 1738       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::sqrt));
 1747       return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::trunc));
 1755       return RValue::get(emitFPToIntRoundBuiltin(*this, E, Intrinsic::lround));
 1763       return RValue::get(emitFPToIntRoundBuiltin(*this, E, Intrinsic::llround));
 1771       return RValue::get(emitFPToIntRoundBuiltin(*this, E, Intrinsic::lrint));
 1779       return RValue::get(emitFPToIntRoundBuiltin(*this, E, Intrinsic::llrint));
 1790     return RValue::get(ConstantEmitter(*this).emitAbstract(E, E->getType()));
 1790     return RValue::get(ConstantEmitter(*this).emitAbstract(E, E->getType()));
 1797                            ? EmitScalarExpr(E->getArg(0))
 1798                            : EmitVAListRef(E->getArg(0)).getPointer(),
 1801     Value *DstPtr = EmitVAListRef(E->getArg(0)).getPointer();
 1802     Value *SrcPtr = EmitVAListRef(E->getArg(1)).getPointer();
 1816     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 1826     ComplexPairTy ComplexVal = EmitComplexExpr(E->getArg(0));
 1843     ComplexPairTy ComplexVal = EmitComplexExpr(E->getArg(0));
 1852     Value *Func = EmitScalarExpr(E->getArg(1)->IgnoreImpCasts());
 1853     CharUnits Arg0Align = EmitPointerWithAlignment(E->getArg(0)).getAlignment();
 1855     const Expr *Arg0 = E->getArg(0)->IgnoreImpCasts();
 1869       CGM.Error(E->getExprLoc(), "using builtin_preserve_access_index() without -g");
 1870       return RValue::get(EmitScalarExpr(E->getArg(0)));
 1875       CGM.Error(E->getExprLoc(), "nested builtin_preserve_access_index() not supported");
 1876       return RValue::get(EmitScalarExpr(E->getArg(0)));
 1880     Value *Res = EmitScalarExpr(E->getArg(0));
 1891     ComplexPairTy ComplexVal = EmitComplexExpr(E->getArg(0));
 1899     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 1904     llvm::Type *ResultType = ConvertType(E->getType());
 1919     Value *ArgValue = EmitCheckedArgForBuiltin(E->getArg(0), BCK_CTZPassedZero);
 1924     llvm::Type *ResultType = ConvertType(E->getType());
 1936     Value *ArgValue = EmitCheckedArgForBuiltin(E->getArg(0), BCK_CLZPassedZero);
 1941     llvm::Type *ResultType = ConvertType(E->getType());
 1953     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 1958     llvm::Type *ResultType = ConvertType(E->getType());
 1974     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 1979     llvm::Type *ResultType = ConvertType(E->getType());
 1990     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 1995     llvm::Type *ResultType = ConvertType(E->getType());
 2008     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 2013     llvm::Type *ResultType = ConvertType(E->getType());
 2024     return RValue::get(EmitScalarExpr(E->getArg(0)));
 2027     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 2030     Value *ExpectedValue = EmitScalarExpr(E->getArg(1));
 2043     const Expr *Ptr = E->getArg(0);
 2046       (E->getNumArgs() > 2) ? EmitScalarExpr(E->getArg(2)) : nullptr;
 2046       (E->getNumArgs() > 2) ? EmitScalarExpr(E->getArg(2)) : nullptr;
 2048     Value *AlignmentValue = EmitScalarExpr(E->getArg(1));
 2061     if (E->getArg(0)->HasSideEffects(getContext()))
 2064     Value *ArgValue = EmitScalarExpr(E->getArg(0));
 2071     return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::bswap));
 2077     return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::bitreverse));
 2088     return emitRotate(E, false);
 2099     return emitRotate(E, true);
 2102     llvm::Type *ResultType = ConvertType(E->getType());
 2104     const Expr *Arg = E->getArg(0);
 2136         E->getArg(1)->EvaluateKnownConstInt(getContext()).getZExtValue();
 2137     auto *ResType = cast<llvm::IntegerType>(ConvertType(E->getType()));
 2142     return RValue::get(emitBuiltinObjectSize(E->getArg(0), Type, ResType,
 2146     Value *Locality, *RW, *Address = EmitScalarExpr(E->getArg(0));
 2148     RW = (E->getNumArgs() > 1) ? EmitScalarExpr(E->getArg(1)) :
 2148     RW = (E->getNumArgs() > 1) ? EmitScalarExpr(E->getArg(1)) :
 2150     Locality = (E->getNumArgs() > 2) ? EmitScalarExpr(E->getArg(2)) :
 2150     Locality = (E->getNumArgs() > 2) ? EmitScalarExpr(E->getArg(2)) :
 2161     Value *Begin = EmitScalarExpr(E->getArg(0));
 2162     Value *End = EmitScalarExpr(E->getArg(1));
 2171     EmitUnreachable(E->getExprLoc());
 2182     Value *Base = EmitScalarExpr(E->getArg(0));
 2183     Value *Exponent = EmitScalarExpr(E->getArg(1));
 2197     Value *LHS = EmitScalarExpr(E->getArg(0));
 2198     Value *RHS = EmitScalarExpr(E->getArg(1));
 2222     return RValue::get(Builder.CreateZExt(LHS, ConvertType(E->getType())));
 2225     Value *V = EmitScalarExpr(E->getArg(0));
 2227     return RValue::get(Builder.CreateZExt(V, ConvertType(E->getType())));
 2241     Value *V = EmitScalarExpr(E->getArg(0));
 2248     return RValue::get(Builder.CreateZExt(FCmp, ConvertType(E->getType())));
 2253     Value *Arg = EmitScalarExpr(E->getArg(0));
 2259     llvm::Type *IntTy = ConvertType(E->getType());
 2270     Value *V = EmitScalarExpr(E->getArg(0));
 2277                    getContext().getFloatTypeSemantics(E->getArg(0)->getType()));
 2283     return RValue::get(Builder.CreateZExt(V, ConvertType(E->getType())));
 2289     llvm::Type *ResultType = ConvertType(E->getType());
 2298     Value *V = EmitScalarExpr(E->getArg(5));
 2299     llvm::Type *Ty = ConvertType(E->getArg(5)->getType());
 2306       Builder.CreatePHI(ConvertType(E->getArg(0)->getType()), 4,
 2313     Value *ZeroLiteral = EmitScalarExpr(E->getArg(4));
 2321     Value *NanLiteral = EmitScalarExpr(E->getArg(0));
 2332     Value *InfLiteral = EmitScalarExpr(E->getArg(1));
 2340         getContext().getFloatTypeSemantics(E->getArg(5)->getType()));
 2345       Builder.CreateSelect(IsNormal, EmitScalarExpr(E->getArg(2)),
 2346                            EmitScalarExpr(E->getArg(3)));
 2358     Value *Size = EmitScalarExpr(E->getArg(0));
 2372     Value *Size = EmitScalarExpr(E->getArg(0));
 2373     Value *AlignmentInBitsValue = EmitScalarExpr(E->getArg(1));
 2386     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2387     Value *SizeVal = EmitScalarExpr(E->getArg(1));
 2388     EmitNonNullArgCheck(RValue::get(Dest.getPointer()), E->getArg(0)->getType(),
 2389                         E->getArg(0)->getExprLoc(), FD, 0);
 2395     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2396     Address Src = EmitPointerWithAlignment(E->getArg(1));
 2397     Value *SizeVal = EmitScalarExpr(E->getArg(2));
 2398     EmitNonNullArgCheck(RValue::get(Dest.getPointer()), E->getArg(0)->getType(),
 2399                         E->getArg(0)->getExprLoc(), FD, 0);
 2400     EmitNonNullArgCheck(RValue::get(Src.getPointer()), E->getArg(1)->getType(),
 2401                         E->getArg(1)->getExprLoc(), FD, 1);
 2413     if (!E->getArg(2)->EvaluateAsInt(SizeResult, CGM.getContext()) ||
 2414         !E->getArg(3)->EvaluateAsInt(DstSizeResult, CGM.getContext()))
 2420     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2421     Address Src = EmitPointerWithAlignment(E->getArg(1));
 2428     Address DestAddr = EmitPointerWithAlignment(E->getArg(0));
 2429     Address SrcAddr = EmitPointerWithAlignment(E->getArg(1));
 2430     Value *SizeVal = EmitScalarExpr(E->getArg(2));
 2439     if (!E->getArg(2)->EvaluateAsInt(SizeResult, CGM.getContext()) ||
 2440         !E->getArg(3)->EvaluateAsInt(DstSizeResult, CGM.getContext()))
 2446     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2447     Address Src = EmitPointerWithAlignment(E->getArg(1));
 2455     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2456     Address Src = EmitPointerWithAlignment(E->getArg(1));
 2457     Value *SizeVal = EmitScalarExpr(E->getArg(2));
 2458     EmitNonNullArgCheck(RValue::get(Dest.getPointer()), E->getArg(0)->getType(),
 2459                         E->getArg(0)->getExprLoc(), FD, 0);
 2460     EmitNonNullArgCheck(RValue::get(Src.getPointer()), E->getArg(1)->getType(),
 2461                         E->getArg(1)->getExprLoc(), FD, 1);
 2467     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2468     Value *ByteVal = Builder.CreateTrunc(EmitScalarExpr(E->getArg(1)),
 2470     Value *SizeVal = EmitScalarExpr(E->getArg(2));
 2471     EmitNonNullArgCheck(RValue::get(Dest.getPointer()), E->getArg(0)->getType(),
 2472                         E->getArg(0)->getExprLoc(), FD, 0);
 2479     if (!E->getArg(2)->EvaluateAsInt(SizeResult, CGM.getContext()) ||
 2480         !E->getArg(3)->EvaluateAsInt(DstSizeResult, CGM.getContext()))
 2486     Address Dest = EmitPointerWithAlignment(E->getArg(0));
 2487     Value *ByteVal = Builder.CreateTrunc(EmitScalarExpr(E->getArg(1)),
 2501     Value *Dst = EmitScalarExpr(E->getArg(0));
 2502     Value *Src = EmitScalarExpr(E->getArg(1));
 2503     Value *Size = EmitScalarExpr(E->getArg(2));
 2566     Value *Depth = ConstantEmitter(*this).emitAbstract(E->getArg(0),
 2576     Value *Depth = ConstantEmitter(*this).emitAbstract(E->getArg(0),
 2582     Value *Address = EmitScalarExpr(E->getArg(0));
 2587     Value *Address = EmitScalarExpr(E->getArg(0));
 2593       = cast<llvm::IntegerType>(ConvertType(E->getType()));
 2596       CGM.ErrorUnsupported(E, "__builtin_dwarf_sp_column");
 2602     Value *Address = EmitScalarExpr(E->getArg(0));
 2604       CGM.ErrorUnsupported(E, "__builtin_init_dwarf_reg_size_table");
 2605     return RValue::get(llvm::UndefValue::get(ConvertType(E->getType())));
 2608     Value *Int = EmitScalarExpr(E->getArg(0));
 2609     Value *Ptr = EmitScalarExpr(E->getArg(1));
 2641     Value *Ptr = EmitScalarExpr(E->getArg(0));
 2656     Address Buf = EmitPointerWithAlignment(E->getArg(0));
 2676     Value *Buf = EmitScalarExpr(E->getArg(0));
 2691     const Expr *Arg = E->getArg(0);
 2722     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Add, E);
 2728     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Sub, E);
 2734     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Or, E);
 2740     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::And, E);
 2746     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Xor, E);
 2752     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Nand, E);
 2756     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Min, E);
 2758     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Max, E);
 2760     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::UMin, E);
 2762     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::UMax, E);
 2769     return EmitBinaryAtomicPost(*this, llvm::AtomicRMWInst::Add, E,
 2776     return EmitBinaryAtomicPost(*this, llvm::AtomicRMWInst::Sub, E,
 2783     return EmitBinaryAtomicPost(*this, llvm::AtomicRMWInst::And, E,
 2790     return EmitBinaryAtomicPost(*this, llvm::AtomicRMWInst::Or, E,
 2797     return EmitBinaryAtomicPost(*this, llvm::AtomicRMWInst::Xor, E,
 2804     return EmitBinaryAtomicPost(*this, llvm::AtomicRMWInst::Nand, E,
 2812     return RValue::get(MakeAtomicCmpXchgValue(*this, E, false));
 2819     return RValue::get(MakeAtomicCmpXchgValue(*this, E, true));
 2826     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Xchg, E);
 2833     return EmitBinaryAtomic(*this, llvm::AtomicRMWInst::Xchg, E);
 2840     Value *Ptr = EmitScalarExpr(E->getArg(0));
 2841     QualType ElTy = E->getArg(0)->getType()->getPointeeType();
 2866     return RValue::get(EmitNontemporalLoad(*this, E));
 2868     return RValue::get(EmitNontemporalStore(*this, E));
 2876     Args.add(RValue::get(EmitScalarExpr(E->getArg(0))),
 2879       Args.add(RValue::get(EmitScalarExpr(E->getArg(1))),
 2885         CGM.getTypes().arrangeBuiltinFunctionCall(E->getType(), Args);
 2895     QualType PtrTy = E->getArg(0)->IgnoreImpCasts()->getType();
 2899     Value *Ptr = EmitScalarExpr(E->getArg(0));
 2903     Value *Order = EmitScalarExpr(E->getArg(1));
 2978     QualType PtrTy = E->getArg(0)->IgnoreImpCasts()->getType();
 2982     Address Ptr = EmitPointerWithAlignment(E->getArg(0));
 2986     Value *Order = EmitScalarExpr(E->getArg(1));
 3044     Value *Order = EmitScalarExpr(E->getArg(0));
 3107         Builder.CreateZExt(EmitSignBit(*this, EmitScalarExpr(E->getArg(0))),
 3108                            ConvertType(E->getType())));
 3113     for (const Expr *Arg : E->arguments()) {
 3120         CGM.ErrorUnsupported(E, "non-UTF16 __annotation argument");
 3134     llvm::Value *AnnVal = EmitScalarExpr(E->getArg(0));
 3140     const Expr *AnnotationStrExpr = E->getArg(1)->IgnoreParenCasts();
 3142     return RValue::get(EmitAnnotationCall(F, AnnVal, Str, E->getExprLoc()));
 3173     llvm::Value *X = EmitScalarExpr(E->getArg(0));
 3174     llvm::Value *Y = EmitScalarExpr(E->getArg(1));
 3175     llvm::Value *Carryin = EmitScalarExpr(E->getArg(2));
 3176     Address CarryOutPtr = EmitPointerWithAlignment(E->getArg(3));
 3214     const clang::Expr *LeftArg = E->getArg(0);
 3215     const clang::Expr *RightArg = E->getArg(1);
 3216     const clang::Expr *ResultArg = E->getArg(2);
 3322     llvm::Value *X = EmitScalarExpr(E->getArg(0));
 3323     llvm::Value *Y = EmitScalarExpr(E->getArg(1));
 3324     Address SumOutPtr = EmitPointerWithAlignment(E->getArg(2));
 3370     return RValue::get(EmitLValue(E->getArg(0)).getPointer());
 3373         E->getCallee()->getType()->castAs<FunctionProtoType>(), E, false);
 3373         E->getCallee()->getType()->castAs<FunctionProtoType>(), E, false);
 3376         E->getCallee()->getType()->castAs<FunctionProtoType>(), E, true);
 3376         E->getCallee()->getType()->castAs<FunctionProtoType>(), E, true);
 3382     const CallExpr *Call = cast<CallExpr>(E->getArg(0));
 3383     const Expr *Chain = E->getArg(1);
 3393         EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange, E));
 3399                        getContext().getTypeSize(E->getType()));
 3403       Builder.CreateBitCast(EmitScalarExpr(E->getArg(0)), IntPtrType);
 3405     llvm::Value *Exchange = EmitScalarExpr(E->getArg(1));
 3410       Builder.CreatePtrToInt(EmitScalarExpr(E->getArg(2)), IntType);
 3428     return RValue::get(EmitAtomicCmpXchgForMSIntrin(*this, E));
 3432         EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement, E));
 3436         EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement, E));
 3440     return RValue::get(EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd, E));
 3445         EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd, E));
 3450         EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeSub, E));
 3454     return RValue::get(EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr, E));
 3458     return RValue::get(EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor, E));
 3478     return RValue::get(EmitBitTestIntrinsic(*this, BuiltinID, E));
 3486     return RValue::get(EmitISOVolatileLoad(*this, E));
 3491     return RValue::get(EmitISOVolatileStore(*this, E));
 3504       return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmpex, E);
 3509         return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmp3, E);
 3511         return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmpex, E);
 3512       return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmp, E);
 3524     return RValue::get(EmitMSVCBuiltinExpr(MSVCIntrin::__fastfail, E));
 3535     return EmitCoroutineIntrinsic(E, Intrinsic::coro_id);
 3537     return EmitCoroutineIntrinsic(E, Intrinsic::coro_promise);
 3539     return EmitCoroutineIntrinsic(E, Intrinsic::coro_resume);
 3541     return EmitCoroutineIntrinsic(E, Intrinsic::coro_frame);
 3543     return EmitCoroutineIntrinsic(E, Intrinsic::coro_noop);
 3545     return EmitCoroutineIntrinsic(E, Intrinsic::coro_free);
 3547     return EmitCoroutineIntrinsic(E, Intrinsic::coro_destroy);
 3549     return EmitCoroutineIntrinsic(E, Intrinsic::coro_done);
 3551     return EmitCoroutineIntrinsic(E, Intrinsic::coro_alloc);
 3553     return EmitCoroutineIntrinsic(E, Intrinsic::coro_begin);
 3555     return EmitCoroutineIntrinsic(E, Intrinsic::coro_end);
 3557     return EmitCoroutineIntrinsic(E, Intrinsic::coro_suspend);
 3559     return EmitCoroutineIntrinsic(E, Intrinsic::coro_param);
 3564     Value *Arg0 = EmitScalarExpr(E->getArg(0)),
 3565           *Arg1 = EmitScalarExpr(E->getArg(1));
 3567     Value *PacketSize = OpenCLRT.getPipeElemSize(E->getArg(0));
 3568     Value *PacketAlign = OpenCLRT.getPipeElemAlign(E->getArg(0));
 3577     if (2U == E->getNumArgs()) {
 3590       assert(4 == E->getNumArgs() &&
 3597       Value *Arg2 = EmitScalarExpr(E->getArg(2)),
 3598             *Arg3 = EmitScalarExpr(E->getArg(3));
 3634     Value *Arg0 = EmitScalarExpr(E->getArg(0)),
 3635           *Arg1 = EmitScalarExpr(E->getArg(1));
 3638     Value *PacketSize = OpenCLRT.getPipeElemSize(E->getArg(0));
 3639     Value *PacketAlign = OpenCLRT.getPipeElemAlign(E->getArg(0));
 3675     Value *Arg0 = EmitScalarExpr(E->getArg(0)),
 3676           *Arg1 = EmitScalarExpr(E->getArg(1));
 3678     Value *PacketSize = OpenCLRT.getPipeElemSize(E->getArg(0));
 3679     Value *PacketAlign = OpenCLRT.getPipeElemAlign(E->getArg(0));
 3695     const auto *PipeTy = E->getArg(0)->getType()->castAs<PipeType>();
 3704     Value *Arg0 = EmitScalarExpr(E->getArg(0));
 3706     Value *PacketSize = OpenCLRT.getPipeElemSize(E->getArg(0));
 3707     Value *PacketAlign = OpenCLRT.getPipeElemAlign(E->getArg(0));
 3720     auto Arg0 = EmitScalarExpr(E->getArg(0));
 3725         E->getType()->getPointeeType().getAddressSpace()));
 3733     auto NewName = std::string("__") + E->getDirectCallee()->getName().str();
 3737       ConvertType(E->getType())));
 3744     unsigned NumArgs = E->getNumArgs();
 3750     llvm::Value *Queue = EmitScalarExpr(E->getArg(0));
 3751     llvm::Value *Flags = EmitScalarExpr(E->getArg(1));
 3752     LValue NDRangeL = EmitAggExprToLValue(E->getArg(2));
 3766           CGM.getOpenCLRuntime().emitOpenCLEnqueuedBlock(*this, E->getArg(3));
 3807             Builder.CreateZExtOrTrunc(EmitScalarExpr(E->getArg(I)), SizeTy);
 3815     if (E->getArg(3)->getType()->isBlockPointerType()) {
 3819           CGM.getOpenCLRuntime().emitOpenCLEnqueuedBlock(*this, E->getArg(3));
 3852           Builder.CreateZExtOrTrunc(EmitScalarExpr(E->getArg(3)), Int32Ty);
 3858       if (E->getArg(4)->isNullPointerConstant(
 3862         EventWaitList = E->getArg(4)->getType()->isArrayType()
 3863                         ? EmitArrayToPointerDecay(E->getArg(4)).getPointer()
 3864                         : EmitScalarExpr(E->getArg(4));
 3869       if (E->getArg(5)->isNullPointerConstant(
 3874             Builder.CreatePointerCast(EmitScalarExpr(E->getArg(5)), EventPtrTy);
 3878           CGM.getOpenCLRuntime().emitOpenCLEnqueuedBlock(*this, E->getArg(6));
 3929         CGM.getOpenCLRuntime().emitOpenCLEnqueuedBlock(*this, E->getArg(0));
 3943         CGM.getOpenCLRuntime().emitOpenCLEnqueuedBlock(*this, E->getArg(0));
 3957     LValue NDRangeL = EmitAggExprToLValue(E->getArg(0));
 3960         CGM.getOpenCLRuntime().emitOpenCLEnqueuedBlock(*this, E->getArg(1));
 3978     Value *Val = EmitScalarExpr(E->getArg(0));
 3979     Address Address = EmitPointerWithAlignment(E->getArg(1));
 3984     Address Address = EmitPointerWithAlignment(E->getArg(0));
 3989     Address Address = EmitPointerWithAlignment(E->getArg(0));
 3995       return EmitNVPTXDevicePrintfCallExpr(E, ReturnValue);
 4001     return RValue::get(emitUnaryBuiltin(*this, E, Intrinsic::canonicalize));
 4005       CGM.ErrorUnsupported(E, "__builtin_thread_pointer");
 4010     return emitBuiltinOSLogFormat(*E);
 4026     auto Arg0 = E->getArg(0);
 4036     auto Arg1 = EmitScalarExpr(E->getArg(1));
 4060     auto Arg0 = EmitScalarExpr(E->getArg(0));
 4064     auto Arg1 = E->getArg(1);
 4074     auto Arg2 = EmitScalarExpr(E->getArg(2));
 4084         EmitVAStartEnd(EmitMSVAListRef(E->getArg(0)).getPointer(),
 4094     Address DestAddr = EmitMSVAListRef(E->getArg(0));
 4095     Address SrcAddr = EmitMSVAListRef(E->getArg(1));
 4113     return emitLibraryCall(*this, FD, E,
 4119     return emitLibraryCall(*this, FD, E,
 4120                       cast<llvm::Constant>(EmitScalarExpr(E->getCallee())));
 4127   checkTargetFeatures(E, FD);
 4159     for (unsigned i = 0, e = E->getNumArgs(); i != e; ++i) {
 4163         ArgValue = EmitScalarExpr(E->getArg(i));
 4168         bool IsConst = E->getArg(i)->isIntegerConstantExpr(Result,getContext());
 4197     QualType BuiltinRetType = E->getType();
 4221   if (Value *V = EmitTargetBuiltinExpr(BuiltinID, E, ReturnValue))
 4224   ErrorUnsupported(E, "builtin function");
 4227   return GetUndefRValue(E->getType());