/external/clang/lib/CodeGen/ |
CGOpenCLRuntime.cpp | 25 void CGOpenCLRuntime::EmitWorkGroupLocalVarDecl(CodeGenFunction &CGF, 27 return CGF.EmitStaticVarDecl(D, llvm::GlobalValue::InternalLinkage);
|
CGCUDARuntime.cpp | 27 RValue CGCUDARuntime::EmitCUDAKernelCallExpr(CodeGenFunction &CGF, 30 llvm::BasicBlock *ConfigOKBlock = CGF.createBasicBlock("kcall.configok"); 31 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("kcall.end"); 33 CodeGenFunction::ConditionalEvaluation eval(CGF); 34 CGF.EmitBranchOnBoolExpr(E->getConfig(), ContBlock, ConfigOKBlock); 36 eval.begin(CGF); 37 CGF.EmitBlock(ConfigOKBlock); 46 llvm::Value *Callee = CGF.EmitScalarExpr(E->getCallee()); 47 CGF.EmitCall(E->getCallee()->getType(), Callee, ReturnValue, 49 CGF.EmitBranch(ContBlock) [all...] |
MicrosoftCXXABI.cpp | 47 void BuildInstanceFunctionParams(CodeGenFunction &CGF, 50 BuildThisParam(CGF, Params); 54 void EmitInstanceFunctionProlog(CodeGenFunction &CGF) { 55 EmitThisParam(CGF); 81 void ReadArrayCookie(CodeGenFunction &CGF, llvm::Value *Ptr, 85 CGF.CGM.ErrorUnsupported(expr, "don't know how to handle array cookies "
|
CGException.cpp | 25 static llvm::Constant *getAllocateExceptionFn(CodeGenFunction &CGF) { 29 llvm::FunctionType::get(CGF.Int8PtrTy, CGF.SizeTy, /*IsVarArgs=*/false); 31 return CGF.CGM.CreateRuntimeFunction(FTy, "__cxa_allocate_exception"); 34 static llvm::Constant *getFreeExceptionFn(CodeGenFunction &CGF) { 38 llvm::FunctionType::get(CGF.VoidTy, CGF.Int8PtrTy, /*IsVarArgs=*/false); 40 return CGF.CGM.CreateRuntimeFunction(FTy, "__cxa_free_exception"); 43 static llvm::Constant *getThrowFn(CodeGenFunction &CGF) { 47 llvm::Type *Args[3] = { CGF.Int8PtrTy, CGF.Int8PtrTy, CGF.Int8PtrTy } [all...] |
CGCXXABI.cpp | 22 static void ErrorUnsupportedABI(CodeGenFunction &CGF, 24 DiagnosticsEngine &Diags = CGF.CGM.getDiags(); 27 Diags.Report(CGF.getContext().getFullLoc(CGF.CurCodeDecl->getLocation()), 42 llvm::Value *CGCXXABI::EmitLoadOfMemberFunctionPointer(CodeGenFunction &CGF, 46 ErrorUnsupportedABI(CGF, "calls through member pointers"); 57 llvm::Value *CGCXXABI::EmitMemberDataPointerAddress(CodeGenFunction &CGF, 61 ErrorUnsupportedABI(CGF, "loads of member pointers"); 62 llvm::Type *Ty = CGF.ConvertType(MPT->getPointeeType())->getPointerTo(); 66 llvm::Value *CGCXXABI::EmitMemberPointerConversion(CodeGenFunction &CGF, [all...] |
CGCXXABI.h | 51 ImplicitParamDecl *&getThisDecl(CodeGenFunction &CGF) { 52 return CGF.CXXABIThisDecl; 54 llvm::Value *&getThisValue(CodeGenFunction &CGF) { 55 return CGF.CXXABIThisValue; 58 ImplicitParamDecl *&getVTTDecl(CodeGenFunction &CGF) { 59 return CGF.CXXVTTDecl; 61 llvm::Value *&getVTTValue(CodeGenFunction &CGF) { 62 return CGF.CXXVTTValue; 66 void BuildThisParam(CodeGenFunction &CGF, FunctionArgList &Params); 70 void EmitThisParam(CodeGenFunction &CGF); [all...] |
CGObjCRuntime.cpp | 81 LValue CGObjCRuntime::EmitValueForIvarAtOffset(CodeGen::CodeGenFunction &CGF, 88 llvm::Type *I8Ptr = CGF.Int8PtrTy; 90 llvm::Type *LTy = CGF.CGM.getTypes().ConvertTypeForMem(IvarTy); 91 llvm::Value *V = CGF.Builder.CreateBitCast(BaseValue, I8Ptr); 92 V = CGF.Builder.CreateInBoundsGEP(V, Offset, "add.ptr"); 93 V = CGF.Builder.CreateBitCast(V, llvm::PointerType::getUnqual(LTy)); 96 LValue LV = CGF.MakeNaturalAlignAddrLValue(V, IvarTy); 116 CGF.CGM.getContext().getASTObjCInterfaceLayout(OID); 117 uint64_t TypeSizeInBits = CGF.CGM.getContext().toBits(RL.getSize()); 118 uint64_t FieldBitOffset = LookupFieldBitOffset(CGF.CGM, OID, 0, Ivar) [all...] |
CGExprAgg.cpp | 34 CodeGenFunction &CGF; 57 return CGF.CreateAggTemp(T, "agg.tmp.ensured"); 61 AggExprEmitter(CodeGenFunction &cgf, AggValueSlot Dest, 63 : CGF(cgf), Builder(CGF.Builder), Dest(Dest), 88 if (CGF.getLangOpts().getGC() && TypeRequiresGCollection(T)) 100 CGF.ErrorUnsupported(S, "aggregate expression"); 121 = CGF.tryEmitAsConstant(E)) { 122 EmitFinalDestCopy(E, result.getReferenceLValue(CGF, E)) [all...] |
CGCUDANV.cpp | 43 void EmitDeviceStubBody(CodeGenFunction &CGF, FunctionArgList &Args); 79 void CGNVCUDARuntime::EmitDeviceStubBody(CodeGenFunction &CGF, 86 llvm::Value *V = CGF.GetAddrOfLocalVar(*I); 92 CGF.getLLVMContext(), ArgTypes); 94 llvm::BasicBlock *EndBlock = CGF.createBasicBlock("setup.end"); 100 llvm::BasicBlock *NextBlock = CGF.createBasicBlock("setup.next"); 101 Args[0] = CGF.Builder.CreatePointerCast(ArgValues[I], VoidPtrTy); 102 Args[1] = CGF.Builder.CreateIntCast( 105 Args[2] = CGF.Builder.CreateIntCast( 108 llvm::CallSite CS = CGF.EmitCallOrInvoke(cudaSetupArgFn, Args) [all...] |
CGExprCXX.cpp | 356 static void EmitNullBaseClassInitialization(CodeGenFunction &CGF, 362 DestPtr = CGF.EmitCastToVoidPtr(DestPtr); 364 const ASTRecordLayout &Layout = CGF.getContext().getASTRecordLayout(Base); 368 llvm::Value *SizeVal = CGF.CGM.getSize(Size); 376 if (!CGF.CGM.getTypes().isZeroInitializable(Base)) { 377 llvm::Constant *NullConstant = CGF.CGM.EmitNullConstantForBase(Base); 380 new llvm::GlobalVariable(CGF.CGM.getModule(), NullConstant->getType(), 385 llvm::Value *SrcPtr = CGF.EmitCastToVoidPtr(NullVariable); 388 CGF.Builder.CreateMemCpy(DestPtr, SrcPtr, SizeVal, Align.getQuantity()); 395 CGF.Builder.CreateMemSet(DestPtr, CGF.Builder.getInt8(0), SizeVal [all...] |
CGCUDARuntime.h | 39 virtual RValue EmitCUDAKernelCallExpr(CodeGenFunction &CGF, 43 virtual void EmitDeviceStubBody(CodeGenFunction &CGF,
|
ItaniumCXXABI.cpp | 63 llvm::Value *EmitLoadOfMemberFunctionPointer(CodeGenFunction &CGF, 68 llvm::Value *EmitMemberDataPointerAddress(CodeGenFunction &CGF, 73 llvm::Value *EmitMemberPointerConversion(CodeGenFunction &CGF, 88 llvm::Value *EmitMemberPointerComparison(CodeGenFunction &CGF, 94 llvm::Value *EmitMemberPointerIsNotNull(CodeGenFunction &CGF, 108 void BuildInstanceFunctionParams(CodeGenFunction &CGF, 112 void EmitInstanceFunctionProlog(CodeGenFunction &CGF); 115 llvm::Value *InitializeArrayCookie(CodeGenFunction &CGF, 120 void ReadArrayCookie(CodeGenFunction &CGF, llvm::Value *Ptr, 125 void EmitGuardedInit(CodeGenFunction &CGF, const VarDecl &D [all...] |
CGExprScalar.cpp | 60 CodeGenFunction &CGF; 66 ScalarExprEmitter(CodeGenFunction &cgf, bool ira=false) 67 : CGF(cgf), Builder(CGF.Builder), IgnoreResultAssign(ira), 68 VMContext(cgf.getLLVMContext()) { 81 llvm::Type *ConvertType(QualType T) { return CGF.ConvertType(T); } 82 LValue EmitLValue(const Expr *E) { return CGF.EmitLValue(E); } 83 LValue EmitCheckedLValue(const Expr *E) { return CGF.EmitCheckedLValue(E); } 86 return CGF.EmitLoadOfLValue(LV).getScalarVal() [all...] |
CGDeclCXX.cpp | 23 static void EmitDeclInit(CodeGenFunction &CGF, const VarDecl &D, 29 ASTContext &Context = CGF.getContext(); 33 LValue lv = CGF.MakeAddrLValue(DeclPtr, type, alignment); 36 if (!CGF.hasAggregateLLVMType(type)) { 37 CodeGenModule &CGM = CGF.CGM; 39 CGM.getObjCRuntime().EmitObjCGlobalAssign(CGF, CGF.EmitScalarExpr(Init), 42 CGM.getObjCRuntime().EmitObjCWeakAssign(CGF, CGF.EmitScalarExpr(Init), 45 CGF.EmitScalarInit(Init, &D, lv, false) [all...] |
CGObjCRuntime.h | 86 LValue EmitValueForIvarAtOffset(CodeGen::CodeGenFunction &CGF, 99 void EmitTryCatchStmt(CodeGenFunction &CGF, 108 void EmitAtSynchronizedStmt(CodeGenFunction &CGF, 154 GenerateMessageSend(CodeGen::CodeGenFunction &CGF, 170 GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, 231 virtual void EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF, 233 virtual void EmitTryStmt(CodeGen::CodeGenFunction &CGF, 235 virtual void EmitThrowStmt(CodeGen::CodeGenFunction &CGF, 237 virtual llvm::Value *EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF, 239 virtual void EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, [all...] |
CGOpenCLRuntime.h | 37 /// an entry to CGF's LocalDeclMap for D. The base class does this using 39 virtual void EmitWorkGroupLocalVarDecl(CodeGenFunction &CGF,
|
TargetInfo.h | 88 virtual bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, 98 virtual llvm::Value *decodeReturnAddress(CodeGen::CodeGenFunction &CGF, 108 virtual llvm::Value *encodeReturnAddress(CodeGen::CodeGenFunction &CGF, 113 virtual llvm::Type* adjustInlineAsmType(CodeGen::CodeGenFunction &CGF,
|
CGExprComplex.cpp | 33 CodeGenFunction &CGF; 39 ComplexExprEmitter(CodeGenFunction &cgf, bool ir=false, bool ii=false) 40 : CGF(cgf), Builder(CGF.Builder), IgnoreReal(ir), IgnoreImag(ii) { 63 return EmitLoadOfLValue(CGF.EmitLValue(E)); 99 S->dump(CGF.getContext().getSourceManager()); 115 if (CodeGenFunction::ConstantEmission result = CGF.tryEmitAsConstant(E)) { 117 return EmitLoadOfLValue(result.getReferenceLValue(CGF, E)); 129 return CGF.EmitObjCMessageExpr(E).getComplexVal() [all...] |
CGClass.cpp | 108 ApplyNonVirtualAndVirtualOffset(CodeGenFunction &CGF, llvm::Value *ThisPtr, 111 CGF.ConvertType(CGF.getContext().getPointerDiffType()); 121 BaseOffset = CGF.Builder.CreateAdd(Virtual, NonVirtualOffset); 128 ThisPtr = CGF.Builder.CreateBitCast(ThisPtr, CGF.Int8PtrTy); 129 ThisPtr = CGF.Builder.CreateGEP(ThisPtr, BaseOffset, "add.ptr"); 277 static llvm::Value *GetVTTParameter(CodeGenFunction &CGF, GlobalDecl GD, 284 const CXXRecordDecl *RD = cast<CXXMethodDecl>(CGF.CurFuncDecl)->getParent(); 294 assert(!CodeGenVTables::needsVTTParameter(CGF.CurGD) & [all...] |
CGCleanup.cpp | 35 DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) { 44 llvm::Value *addr = CGF.CreateTempAlloca(V->getType(), "saved-rvalue"); 45 CGF.Builder.CreateStore(V, addr); 54 llvm::Value *addr = CGF.CreateTempAlloca(ComplexTy, "saved-complex"); 55 CGF.StoreComplexToAddr(V, addr, /*volatile*/ false); 64 llvm::Value *addr = CGF.CreateTempAlloca(V->getType(), "saved-rvalue"); 65 CGF.Builder.CreateStore(V, addr); 72 RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) { 77 return RValue::get(CGF.Builder.CreateLoad(Value)); 81 return RValue::getAggregate(CGF.Builder.CreateLoad(Value)) [all...] |
CGObjC.cpp | 31 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e); 32 static RValue AdjustRelatedResultType(CodeGenFunction &CGF, 204 static RValue AdjustRelatedResultType(CodeGenFunction &CGF, 212 CGF.getContext().hasSameType(E->getType(), Method->getResultType()) || 217 return RValue::get(CGF.Builder.CreateBitCast(Result.getScalarVal(), 218 CGF.ConvertType(E->getType()))); 409 void Emit(CodeGenFunction &CGF, Flags flags) { 410 const ObjCMethodDecl *method = cast<ObjCMethodDecl>(CGF.CurCodeDecl); 419 llvm::Value *self = CGF.LoadObjCSelf(); 422 CGF.CGM.getObjCRuntime().GenerateMessageSendSuper(CGF, ReturnValueSlot() [all...] |
CGObjCMac.cpp | [all...] |
CodeGenFunction.h | 110 static saved_type save(CodeGenFunction &CGF, type value) { return value; } 111 static type restore(CodeGenFunction &CGF, saved_type value) { return value; } 227 virtual void Emit(CodeGenFunction &CGF, Flags flags) = 0; 237 void Emit(CodeGenFunction &CGF, Flags flags) { 238 A0 a0 = DominatingValue<A0>::restore(CGF, a0_saved); 239 T(a0).Emit(CGF, flags); 254 void Emit(CodeGenFunction &CGF, Flags flags) { 255 A0 a0 = DominatingValue<A0>::restore(CGF, a0_saved); 256 A1 a1 = DominatingValue<A1>::restore(CGF, a1_saved); 257 T(a0, a1).Emit(CGF, flags) [all...] |
TargetInfo.cpp | 345 CodeGenFunction &CGF) const; 355 CodeGenFunction &CGF) const { 402 static llvm::Type* X86AdjustInlineAsmType(CodeGen::CodeGenFunction &CGF, 406 return llvm::Type::getX86_MMXTy(CGF.getLLVMContext()); 452 CodeGenFunction &CGF) const; 475 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, 478 llvm::Type* adjustInlineAsmType(CodeGen::CodeGenFunction &CGF, 481 return X86AdjustInlineAsmType(CGF, Constraint, Ty); 757 CodeGenFunction &CGF) const { 758 llvm::Type *BPP = CGF.Int8PtrPtrTy [all...] |
CGCall.cpp | 532 uint64_t DstSize, CodeGenFunction &CGF) { 541 CGF.CGM.getTargetData().getTypeAllocSize(FirstElt); 543 FirstEltSize < CGF.CGM.getTargetData().getTypeAllocSize(SrcSTy)) 547 SrcPtr = CGF.Builder.CreateConstGEP2_32(SrcPtr, 0, 0, "coerce.dive"); 553 return EnterStructPointerForCoercedAccess(SrcPtr, SrcSTy, DstSize, CGF); 563 CodeGenFunction &CGF) { 570 return CGF.Builder.CreateBitCast(Val, Ty, "coerce.val"); 573 Val = CGF.Builder.CreatePtrToInt(Val, CGF.IntPtrTy, "coerce.val.pi"); 578 DestIntTy = CGF.IntPtrTy [all...] |