[PATCH] D122199: [NFC][Clang][OpaquePtr] Remove calls to Address::deprecated in TargetInfo.cpp
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG818e72d1b09b: [NFC][Clang][OpaquePtr] Remove calls to Address::deprecated in (authored by ahatanak). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D122199/new/ https://reviews.llvm.org/D122199 Files: clang/lib/CodeGen/TargetInfo.cpp Index: clang/lib/CodeGen/TargetInfo.cpp === --- clang/lib/CodeGen/TargetInfo.cpp +++ clang/lib/CodeGen/TargetInfo.cpp @@ -100,6 +100,11 @@ return Address::invalid(); } +static llvm::Type *getVAListElementType(CodeGenFunction &CGF) { + return CGF.ConvertTypeForMem( + CGF.getContext().getBuiltinVaListType()->getPointeeType()); +} + bool ABIInfo::isPromotableIntegerTypeForABI(QualType Ty) const { if (Ty->isPromotableIntegerType()) return true; @@ -375,7 +380,7 @@ } // Cast the address we've calculated to the right type. - llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy); + llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy), *ElementTy = DirectTy; if (IsIndirect) DirectTy = DirectTy->getPointerTo(0); @@ -384,7 +389,7 @@ SlotSizeAndAlign, AllowHigherAlign); if (IsIndirect) { -Addr = Address::deprecated(CGF.Builder.CreateLoad(Addr), ValueInfo.Align); +Addr = Address(CGF.Builder.CreateLoad(Addr), ElementTy, ValueInfo.Align); } return Addr; @@ -688,11 +693,11 @@ auto TyInfo = CGF.getContext().getTypeInfoInChars(Ty); CharUnits TyAlignForABI = TyInfo.Align; -llvm::Type *BaseTy = -llvm::PointerType::getUnqual(CGF.ConvertTypeForMem(Ty)); +llvm::Type *ElementTy = CGF.ConvertTypeForMem(Ty); +llvm::Type *BaseTy = llvm::PointerType::getUnqual(ElementTy); llvm::Value *Addr = CGF.Builder.CreateVAArg(VAListAddr.getPointer(), BaseTy); -return Address::deprecated(Addr, TyAlignForABI); +return Address(Addr, ElementTy, TyAlignForABI); } else { assert((AI.isDirect() || AI.isExtend()) && "Unexpected ArgInfo Kind in generic VAArg emitter!"); @@ -4826,7 +4831,7 @@ Builder.CreateCondBr(CC, UsingRegs, UsingOverflow); - llvm::Type *DirectTy = CGF.ConvertType(Ty); + llvm::Type *DirectTy = CGF.ConvertType(Ty), *ElementTy = DirectTy; if (isIndirect) DirectTy = DirectTy->getPointerTo(0); // Case 1: consume registers. @@ -4835,8 +4840,8 @@ CGF.EmitBlock(UsingRegs); Address RegSaveAreaPtr = Builder.CreateStructGEP(VAList, 4); -RegAddr = Address::deprecated(Builder.CreateLoad(RegSaveAreaPtr), - CharUnits::fromQuantity(8)); +RegAddr = Address(Builder.CreateLoad(RegSaveAreaPtr), CGF.Int8Ty, + CharUnits::fromQuantity(8)); assert(RegAddr.getElementType() == CGF.Int8Ty); // Floating-point registers start after the general-purpose registers. @@ -4883,14 +4888,15 @@ } Address OverflowAreaAddr = Builder.CreateStructGEP(VAList, 3); -Address OverflowArea = Address::deprecated( -Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), OverflowAreaAlign); +Address OverflowArea = +Address(Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), CGF.Int8Ty, +OverflowAreaAlign); // Round up address of argument to alignment CharUnits Align = CGF.getContext().getTypeAlignInChars(Ty); if (Align > OverflowAreaAlign) { llvm::Value *Ptr = OverflowArea.getPointer(); - OverflowArea = Address::deprecated( - emitRoundPointerUpToAlignment(CGF, Ptr, Align), Align); + OverflowArea = Address(emitRoundPointerUpToAlignment(CGF, Ptr, Align), + OverflowArea.getElementType(), Align); } MemAddr = Builder.CreateElementBitCast(OverflowArea, DirectTy); @@ -4909,8 +4915,8 @@ // Load the pointer if the argument was passed indirectly. if (isIndirect) { -Result = Address::deprecated(Builder.CreateLoad(Result, "aggr"), - getContext().getTypeAlignInChars(Ty)); +Result = Address(Builder.CreateLoad(Result, "aggr"), ElementTy, + getContext().getTypeAlignInChars(Ty)); } return Result; @@ -6060,7 +6066,7 @@ Address BaseAddr(CGF.Builder.CreateInBoundsGEP(CGF.Int8Ty, reg_top, reg_offs), CGF.Int8Ty, CharUnits::fromQuantity(IsFPR ? 16 : 8)); Address RegAddr = Address::invalid(); - llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty); + llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty), *ElementTy = MemTy; if (IsIndirect) { // If it's been passed indirectly (actually a struct), whatever we find from @@ -6143,8 +6149,8 @@ OnStackPtr = CGF.Builder.CreateIntToPtr(OnStackPtr, CGF.Int8PtrTy); } - Address OnStackAddr = Address::deprecated( - OnStackPtr, std::max(CharUnits::fromQuantity(8), TyAlign)); + Add
[PATCH] D122199: [NFC][Clang][OpaquePtr] Remove calls to Address::deprecated in TargetInfo.cpp
nikic accepted this revision. nikic added a comment. This revision is now accepted and ready to land. LGTM Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D122199/new/ https://reviews.llvm.org/D122199 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D122199: [NFC][Clang][OpaquePtr] Remove calls to Address::deprecated in TargetInfo.cpp
ahatanak created this revision. ahatanak added a reviewer: opaque-pointers. ahatanak added a project: clang. Herald added a project: All. ahatanak requested review of this revision. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D122199 Files: clang/lib/CodeGen/TargetInfo.cpp Index: clang/lib/CodeGen/TargetInfo.cpp === --- clang/lib/CodeGen/TargetInfo.cpp +++ clang/lib/CodeGen/TargetInfo.cpp @@ -100,6 +100,11 @@ return Address::invalid(); } +static llvm::Type *getVAListElementType(CodeGenFunction &CGF) { + return CGF.ConvertTypeForMem( + CGF.getContext().getBuiltinVaListType()->getPointeeType()); +} + bool ABIInfo::isPromotableIntegerTypeForABI(QualType Ty) const { if (Ty->isPromotableIntegerType()) return true; @@ -375,7 +380,7 @@ } // Cast the address we've calculated to the right type. - llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy); + llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy), *ElementTy = DirectTy; if (IsIndirect) DirectTy = DirectTy->getPointerTo(0); @@ -384,7 +389,7 @@ SlotSizeAndAlign, AllowHigherAlign); if (IsIndirect) { -Addr = Address::deprecated(CGF.Builder.CreateLoad(Addr), ValueInfo.Align); +Addr = Address(CGF.Builder.CreateLoad(Addr), ElementTy, ValueInfo.Align); } return Addr; @@ -688,11 +693,11 @@ auto TyInfo = CGF.getContext().getTypeInfoInChars(Ty); CharUnits TyAlignForABI = TyInfo.Align; -llvm::Type *BaseTy = -llvm::PointerType::getUnqual(CGF.ConvertTypeForMem(Ty)); +llvm::Type *ElementTy = CGF.ConvertTypeForMem(Ty); +llvm::Type *BaseTy = llvm::PointerType::getUnqual(ElementTy); llvm::Value *Addr = CGF.Builder.CreateVAArg(VAListAddr.getPointer(), BaseTy); -return Address::deprecated(Addr, TyAlignForABI); +return Address(Addr, ElementTy, TyAlignForABI); } else { assert((AI.isDirect() || AI.isExtend()) && "Unexpected ArgInfo Kind in generic VAArg emitter!"); @@ -4826,7 +4831,7 @@ Builder.CreateCondBr(CC, UsingRegs, UsingOverflow); - llvm::Type *DirectTy = CGF.ConvertType(Ty); + llvm::Type *DirectTy = CGF.ConvertType(Ty), *ElementTy = DirectTy; if (isIndirect) DirectTy = DirectTy->getPointerTo(0); // Case 1: consume registers. @@ -4835,8 +4840,8 @@ CGF.EmitBlock(UsingRegs); Address RegSaveAreaPtr = Builder.CreateStructGEP(VAList, 4); -RegAddr = Address::deprecated(Builder.CreateLoad(RegSaveAreaPtr), - CharUnits::fromQuantity(8)); +RegAddr = Address(Builder.CreateLoad(RegSaveAreaPtr), CGF.Int8Ty, + CharUnits::fromQuantity(8)); assert(RegAddr.getElementType() == CGF.Int8Ty); // Floating-point registers start after the general-purpose registers. @@ -4883,14 +4888,15 @@ } Address OverflowAreaAddr = Builder.CreateStructGEP(VAList, 3); -Address OverflowArea = Address::deprecated( -Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), OverflowAreaAlign); +Address OverflowArea = +Address(Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), CGF.Int8Ty, +OverflowAreaAlign); // Round up address of argument to alignment CharUnits Align = CGF.getContext().getTypeAlignInChars(Ty); if (Align > OverflowAreaAlign) { llvm::Value *Ptr = OverflowArea.getPointer(); - OverflowArea = Address::deprecated( - emitRoundPointerUpToAlignment(CGF, Ptr, Align), Align); + OverflowArea = Address(emitRoundPointerUpToAlignment(CGF, Ptr, Align), + OverflowArea.getElementType(), Align); } MemAddr = Builder.CreateElementBitCast(OverflowArea, DirectTy); @@ -4909,8 +4915,8 @@ // Load the pointer if the argument was passed indirectly. if (isIndirect) { -Result = Address::deprecated(Builder.CreateLoad(Result, "aggr"), - getContext().getTypeAlignInChars(Ty)); +Result = Address(Builder.CreateLoad(Result, "aggr"), ElementTy, + getContext().getTypeAlignInChars(Ty)); } return Result; @@ -6060,7 +6066,7 @@ Address BaseAddr(CGF.Builder.CreateInBoundsGEP(CGF.Int8Ty, reg_top, reg_offs), CGF.Int8Ty, CharUnits::fromQuantity(IsFPR ? 16 : 8)); Address RegAddr = Address::invalid(); - llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty); + llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty), *ElementTy = MemTy; if (IsIndirect) { // If it's been passed indirectly (actually a struct), whatever we find from @@ -6143,8 +6149,8 @@ OnStackPtr = CGF.Builder.CreateIntToPtr(OnStackPtr, CGF.Int8PtrTy); } - Address OnStackAddr = Address::deprecated( - OnStackPtr, std::max(CharUnits::fromQuantity(8), TyAlign)); + Address OnStackAddr = Address(OnStackPtr, CGF.Int8Ty, +std::max(CharUnits::fromQuantity(8), TyAlign));