reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
596 llvm::Value *RawAdj = Builder.CreateExtractValue(MemFnPtr, 1, "memptr.adj"); 601 Adj = Builder.CreateAShr(Adj, ptrdiff_1, "memptr.adj.shifted"); 606 llvm::Value *Ptr = Builder.CreateBitCast(This, Builder.getInt8PtrTy()); 606 llvm::Value *Ptr = Builder.CreateBitCast(This, Builder.getInt8PtrTy()); 607 Ptr = Builder.CreateInBoundsGEP(Ptr, Adj); 608 This = Builder.CreateBitCast(Ptr, This->getType(), "this.adjusted"); 612 llvm::Value *FnAsInt = Builder.CreateExtractValue(MemFnPtr, 0, "memptr.ptr"); 618 IsVirtual = Builder.CreateAnd(RawAdj, ptrdiff_1); 620 IsVirtual = Builder.CreateAnd(FnAsInt, ptrdiff_1); 621 IsVirtual = Builder.CreateIsNotNull(IsVirtual, "memptr.isvirtual"); 622 Builder.CreateCondBr(IsVirtual, FnVirtual, FnNonVirtual); 630 llvm::Type *VTableTy = Builder.getInt8PtrTy(); 642 VTableOffset = Builder.CreateSub(VTableOffset, ptrdiff_1); 644 VTableOffset = Builder.CreateTrunc(VTableOffset, CGF.Int32Ty); 645 VTableOffset = Builder.CreateZExt(VTableOffset, CGM.PtrDiffTy); 670 llvm::Value *VFPAddr = Builder.CreateGEP(VTable, VTableOffset); 678 llvm::Value *CheckedLoad = Builder.CreateCall( 681 CheckResult = Builder.CreateExtractValue(CheckedLoad, 1); 682 VirtualFn = Builder.CreateExtractValue(CheckedLoad, 0); 683 VirtualFn = Builder.CreateBitCast(VirtualFn, FTy->getPointerTo(), 689 CheckResult = Builder.CreateCall( 691 {Builder.CreateBitCast(VFPAddr, CGF.Int8PtrTy), TypeId}); 694 Builder.CreateBitCast(VFPAddr, FTy->getPointerTo()->getPointerTo()); 695 VirtualFn = Builder.CreateAlignedLoad(VFPAddr, CGF.getPointerAlign(), 718 llvm::Value *ValidVtable = Builder.CreateCall( 725 FnVirtual = Builder.GetInsertBlock(); 735 Builder.CreateIntToPtr(FnAsInt, FTy->getPointerTo(), "memptr.nonvirtualfn"); 749 llvm::Value *Bit = Builder.getFalse(); 751 Builder.CreateBitCast(NonVirtualFn, CGF.Int8PtrTy); 761 Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::type_test), 763 Bit = Builder.CreateOr(Bit, TypeTest); 770 FnNonVirtual = Builder.GetInsertBlock(); 776 llvm::PHINode *CalleePtr = Builder.CreatePHI(FTy->getPointerTo(), 2);