reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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());