Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Value

138   llvm::Value *EmitTypeid(CodeGenFunction &CGF, QualType SrcRecordTy,
145 llvm::Value *EmitDynamicCastCall(CodeGenFunction &CGF, Address Value,
150 llvm::Value *EmitDynamicCastToVoid(CodeGenFunction &CGF, Address Value,
159 llvm::Value *
242 llvm::Value *adjustThisParameterInVirtualFunctionPrologue(
243 CodeGenFunction &CGF, GlobalDecl GD, llvm::Value *This) override;
276 llvm::Value *getVTableAddressPointInStructor(
287 llvm::Value *getVirtualFunctionPointer(CodeGenFunction &CGF, GlobalDecl GD,
291 llvm::Value *EmitVirtualDestructorCall(CodeGenFunction &CGF,
373 llvm::Value *performThisAdjustment(CodeGenFunction &CGF, Address This,
376 llvm::Value *performReturnAdjustment(CodeGenFunction &CGF, Address Ret,
423 llvm::Value *NumElements,
426 llvm::Value *readArrayCookieImpl(CodeGenFunction &CGF,
563 llvm::Value *GetVBaseOffsetFromVBPtr(CodeGenFunction &CGF,
565 llvm::Value *VBPtrOffset,
566 llvm::Value *VBTableOffset,
567 llvm::Value **VBPtr = nullptr);
569 llvm::Value *GetVBaseOffsetFromVBPtr(CodeGenFunction &CGF,
573 llvm::Value **VBPtr = nullptr) {
575 llvm::Value *VBPOffset = llvm::ConstantInt::get(CGM.IntTy, VBPtrOffset),
580 std::pair<Address, llvm::Value *>
581 performBaseAdjustment(CodeGenFunction &CGF, Address Value,
586 llvm::Value *AdjustVirtualBase(CodeGenFunction &CGF, const Expr *E,
588 llvm::Value *VirtualBaseAdjustmentOffset,
589 llvm::Value *VBPtrOffset /* optional */);
630 llvm::Value *EmitMemberPointerComparison(CodeGenFunction &CGF,
631 llvm::Value *L,
632 llvm::Value *R,
636 llvm::Value *EmitMemberPointerIsNotNull(CodeGenFunction &CGF,
637 llvm::Value *MemPtr,
640 llvm::Value *
642 Address Base, llvm::Value *MemPtr,
645 llvm::Value *EmitNonNullMemberPointerConversion(
648 CastExpr::path_const_iterator PathEnd, llvm::Value *Src,
651 llvm::Value *EmitMemberPointerConversion(CodeGenFunction &CGF,
653 llvm::Value *Src) override;
663 llvm::Value *
665 Address This, llvm::Value *&ThisPtrForCall,
666 llvm::Value *MemPtr,
860 llvm::Value *MDThis =
867 llvm::Value *Args[] = {
917 std::pair<Address, llvm::Value *>
918 MicrosoftCXXABI::performBaseAdjustment(CodeGenFunction &CGF, Address Value,
920 Value = CGF.Builder.CreateBitCast(Value, CGF.Int8PtrTy);
928 return std::make_pair(Value, llvm::ConstantInt::get(CGF.Int32Ty, 0));
942 llvm::Value *Offset =
943 GetVirtualBaseClassOffset(CGF, Value, SrcDecl, PolymorphicBase);
944 llvm::Value *Ptr = CGF.Builder.CreateInBoundsGEP(Value.getPointer(), Offset);
947 CGF.CGM.getVBaseAlignment(Value.getAlignment(), SrcDecl, PolymorphicBase);
959 llvm::Value *Argument) {
963 llvm::Value *Args[] = {Argument};
975 llvm::Value *MicrosoftCXXABI::EmitTypeid(CodeGenFunction &CGF,
979 llvm::Value *Offset;
992 llvm::Value *MicrosoftCXXABI::EmitDynamicCastCall(
997 llvm::Value *SrcRTTI =
999 llvm::Value *DestRTTI =
1002 llvm::Value *Offset;
1004 llvm::Value *ThisPtr = This.getPointer();
1017 llvm::Value *Args[] = {
1024 llvm::Value *
1025 MicrosoftCXXABI::EmitDynamicCastToVoid(CodeGenFunction &CGF, Address Value,
1028 llvm::Value *Offset;
1029 std::tie(Value, Offset) = performBaseAdjustment(CGF, Value, SrcRecordTy);
1037 llvm::Value *Args[] = {Value.getPointer()};
1045 llvm::Value *MicrosoftCXXABI::GetVirtualBaseClassOffset(
1051 llvm::Value *VBPtrOffset = llvm::ConstantInt::get(CGM.PtrDiffTy, VBPtrChars);
1056 llvm::Value *VBTableOffset =
1059 llvm::Value *VBPtrToNewBase =
1104 llvm::Value *IsMostDerivedClass = getStructorImplicitParamValue(CGF);
1107 llvm::Value *IsCompleteObject =
1146 llvm::Value *Int8This = nullptr; // Initialize lazily.
1153 llvm::Value *VBaseOffset =
1162 llvm::Value *VtorDispValue = Builder.CreateSub(
1164 "vtordisp.value");
1169 llvm::Value *VtorDispPtr = Builder.CreateInBoundsGEP(Int8This, VBaseOffset);
1223 llvm::Value *GVPtr =
1345 llvm::Value *VBaseOffset =
1347 llvm::Value *VBasePtr =
1400 llvm::Value *MicrosoftCXXABI::adjustThisParameterInVirtualFunctionPrologue(
1401 CodeGenFunction &CGF, GlobalDecl GD, llvm::Value *This) {
1470 llvm::Value *MostDerivedArg =
1488 llvm::Value *Callee = CGM.getAddrOfCXXStructor(DD, getFromDtorType(Type));
1592 llvm::Value *MicrosoftCXXABI::getVTableAddressPointInStructor(
1721 llvm::Value *GEPIndices[] = {llvm::ConstantInt::get(CGM.IntTy, 0),
1799 llvm::Value *MicrosoftCXXABI::getVirtualFunctionPointer(CodeGenFunction &CGF,
1812 llvm::Value *VTable = CGF.GetVTablePtr(VPtr, Ty, MethodDecl->getParent());
1820 llvm::Value *VFuncPtr =
1825 llvm::Value *MicrosoftCXXABI::EmitVirtualDestructorCall(
1837 llvm::Value *Callee = getVirtualFunctionPointer(
1841 llvm::Value *ImplicitParam = llvm::ConstantInt::get(
1915 // appropriately to extract the correct value.
1938 llvm::Value *VTable = CGF.GetVTablePtr(
1941 llvm::Value *VFuncPtr =
1943 llvm::Value *Callee =
2035 llvm::Value *MicrosoftCXXABI::performThisAdjustment(CodeGenFunction &CGF,
2043 llvm::Value *V;
2048 // Adjust the this argument based on the vtordisp value.
2053 llvm::Value *VtorDisp = CGF.Builder.CreateLoad(VtorDispPtr, "vtordisp");
2067 llvm::Value *VBPtr;
2068 llvm::Value *VBaseOffset =
2087 llvm::Value *
2096 llvm::Value *V = Ret.getPointer();
2100 llvm::Value *VBPtr;
2101 llvm::Value *VBaseOffset =
2135 llvm::Value *MicrosoftCXXABI::readArrayCookieImpl(CodeGenFunction &CGF,
2145 llvm::Value *numElements,
2311 llvm::Value *Guard;
2420 llvm::Value *IsInitialized =
2455 llvm::Value *IsUninitialized =
2468 llvm::Value *ShouldDoInit =
2710 llvm::Value *
2712 llvm::Value *L,
2713 llvm::Value *R,
2740 llvm::Value *L0 = Builder.CreateExtractValue(L, 0, "lhs.0");
2741 llvm::Value *R0 = Builder.CreateExtractValue(R, 0, "rhs.0");
2742 llvm::Value *Cmp0 = Builder.CreateICmp(Eq, L0, R0, "memptr.cmp.first");
2745 llvm::Value *Res = nullptr;
2748 llvm::Value *LF = Builder.CreateExtractValue(L, I);
2749 llvm::Value *RF = Builder.CreateExtractValue(R, I);
2750 llvm::Value *Cmp = Builder.CreateICmp(Eq, LF, RF, "memptr.cmp.rest");
2760 llvm::Value *Zero = llvm::Constant::getNullValue(L0->getType());
2761 llvm::Value *IsZero = Builder.CreateICmp(Eq, L0, Zero, "memptr.cmp.iszero");
2770 llvm::Value *
2772 llvm::Value *MemPtr,
2782 llvm::Value *FirstField = MemPtr;
2785 llvm::Value *Res = Builder.CreateICmpNE(FirstField, fields[0], "memptr.cmp0");
2794 llvm::Value *Field = Builder.CreateExtractValue(MemPtr, I);
2795 llvm::Value *Next = Builder.CreateICmpNE(Field, fields[I], "memptr.cmp");
2832 llvm::Value *
2835 llvm::Value *VBPtrOffset,
2836 llvm::Value *VBTableOffset,
2837 llvm::Value **VBPtrOut) {
2841 llvm::Value *VBPtr =
2855 llvm::Value *VBTable = Builder.CreateAlignedLoad(VBPtr, VBPtrAlign, "vbtable");
2858 llvm::Value *VBTableIndex = Builder.CreateAShr(
2863 llvm::Value *VBaseOffs = Builder.CreateInBoundsGEP(VBTable, VBTableIndex);
2871 llvm::Value *MicrosoftCXXABI::AdjustVirtualBase(
2873 Address Base, llvm::Value *VBTableOffset, llvm::Value *VBPtrOffset) {
2888 llvm::Value *IsVirtual =
2910 llvm::Value *VBPtr = nullptr;
2911 llvm::Value *VBaseOffs =
2913 llvm::Value *AdjustedBase = Builder.CreateInBoundsGEP(VBPtr, VBaseOffs);
2927 llvm::Value *MicrosoftCXXABI::EmitMemberDataPointerAddress(
2928 CodeGenFunction &CGF, const Expr *E, Address Base, llvm::Value *MemPtr,
2940 llvm::Value *FieldOffset = MemPtr;
2941 llvm::Value *VirtualBaseAdjustmentOffset = nullptr;
2942 llvm::Value *VBPtrOffset = nullptr;
2953 llvm::Value *Addr;
2972 llvm::Value *
2975 llvm::Value *Src) {
3005 llvm::Value *IsNotNull = EmitMemberPointerIsNotNull(CGF, Src, SrcTy);
3008 // C++ 5.2.10p9: The null member pointer value is converted to the null member
3009 // pointer value of the destination type.
3023 llvm::Value *Dst = EmitNonNullMemberPointerConversion(
3037 llvm::Value *MicrosoftCXXABI::EmitNonNullMemberPointerConversion(
3040 CastExpr::path_const_iterator PathEnd, llvm::Value *Src,
3050 llvm::Value *FirstField = Src;
3051 llvm::Value *NonVirtualBaseAdjustment = getZeroInt();
3052 llvm::Value *VirtualBaseAdjustmentOffset = getZeroInt();
3053 llvm::Value *VBPtrOffset = getZeroInt();
3072 llvm::Value *&NVAdjustField = IsFunc ? NonVirtualBaseAdjustment : FirstField;
3079 llvm::Value *SrcVBIndexEqZero =
3084 llvm::Value *UndoSrcAdjustment = Builder.CreateSelect(
3104 llvm::Value *NVDisp;
3112 // Update the vbindex to an appropriate value in the destination because
3114 llvm::Value *DstVBIndexEqZero = SrcVBIndexEqZero;
3119 llvm::Value *VBIndex = Builder.CreateExactUDiv(
3126 llvm::Value *Idxs[] = {getZeroInt(), VBIndex};
3140 llvm::Value *DstVBPtrOffset = llvm::ConstantInt::get(
3153 llvm::Value *DoDstAdjustment = Builder.CreateSelect(
3162 llvm::Value *Dst;
3217 llvm::Value *MicrosoftCXXABI::EmitLoadOfMemberFunctionPointer(
3219 llvm::Value *&ThisPtrForCall, llvm::Value *MemPtr,
3233 llvm::Value *FunctionPointer = MemPtr;
3234 llvm::Value *NonVirtualBaseAdjustment = nullptr;
3235 llvm::Value *VirtualBaseAdjustmentOffset = nullptr;
3236 llvm::Value *VBPtrOffset = nullptr;
3258 llvm::Value *Ptr = Builder.CreateBitCast(ThisPtrForCall, CGF.Int8PtrTy);
3479 llvm::Value *GEPIndices[] = {llvm::ConstantInt::get(CGM.IntTy, 0),
3499 llvm::ArrayRef<llvm::Value *>(GEPIndices))),
3838 llvm::Value *This = getThisValue(CGF);
3840 llvm::Value *SrcVal =
3872 llvm::Value *CalleeFn = CGM.getAddrOfCXXStructor(CD, StructorType::Complete);
3915 // exception is caught by value.
4170 llvm::Value *Args[] = {