[PATCH] D122199: [NFC][Clang][OpaquePtr] Remove calls to Address::deprecated in TargetInfo.cpp

2022-03-22 Thread Akira Hatanaka via Phabricator via cfe-commits
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

2022-03-22 Thread Nikita Popov via Phabricator via cfe-commits
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

2022-03-21 Thread Akira Hatanaka via Phabricator via cfe-commits
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));