Skip to content

Commit 818e72d

Browse files
committed
[NFC][Clang][OpaquePtr] Remove calls to Address::deprecated in
TargetInfo.cpp Differential Revision: https://reviews.llvm.org/D122199
1 parent 4e0008d commit 818e72d

File tree

1 file changed

+49
-42
lines changed

1 file changed

+49
-42
lines changed

clang/lib/CodeGen/TargetInfo.cpp

Lines changed: 49 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ Address ABIInfo::EmitMSVAArg(CodeGenFunction &CGF, Address VAListAddr,
100100
return Address::invalid();
101101
}
102102

103+
static llvm::Type *getVAListElementType(CodeGenFunction &CGF) {
104+
return CGF.ConvertTypeForMem(
105+
CGF.getContext().getBuiltinVaListType()->getPointeeType());
106+
}
107+
103108
bool ABIInfo::isPromotableIntegerTypeForABI(QualType Ty) const {
104109
if (Ty->isPromotableIntegerType())
105110
return true;
@@ -375,7 +380,7 @@ static Address emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
375380
}
376381

377382
// Cast the address we've calculated to the right type.
378-
llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy);
383+
llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy), *ElementTy = DirectTy;
379384
if (IsIndirect)
380385
DirectTy = DirectTy->getPointerTo(0);
381386

@@ -384,7 +389,7 @@ static Address emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
384389
SlotSizeAndAlign, AllowHigherAlign);
385390

386391
if (IsIndirect) {
387-
Addr = Address::deprecated(CGF.Builder.CreateLoad(Addr), ValueInfo.Align);
392+
Addr = Address(CGF.Builder.CreateLoad(Addr), ElementTy, ValueInfo.Align);
388393
}
389394

390395
return Addr;
@@ -688,11 +693,11 @@ Address EmitVAArgInstr(CodeGenFunction &CGF, Address VAListAddr, QualType Ty,
688693
auto TyInfo = CGF.getContext().getTypeInfoInChars(Ty);
689694
CharUnits TyAlignForABI = TyInfo.Align;
690695

691-
llvm::Type *BaseTy =
692-
llvm::PointerType::getUnqual(CGF.ConvertTypeForMem(Ty));
696+
llvm::Type *ElementTy = CGF.ConvertTypeForMem(Ty);
697+
llvm::Type *BaseTy = llvm::PointerType::getUnqual(ElementTy);
693698
llvm::Value *Addr =
694699
CGF.Builder.CreateVAArg(VAListAddr.getPointer(), BaseTy);
695-
return Address::deprecated(Addr, TyAlignForABI);
700+
return Address(Addr, ElementTy, TyAlignForABI);
696701
} else {
697702
assert((AI.isDirect() || AI.isExtend()) &&
698703
"Unexpected ArgInfo Kind in generic VAArg emitter!");
@@ -4826,7 +4831,7 @@ Address PPC32_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAList,
48264831

48274832
Builder.CreateCondBr(CC, UsingRegs, UsingOverflow);
48284833

4829-
llvm::Type *DirectTy = CGF.ConvertType(Ty);
4834+
llvm::Type *DirectTy = CGF.ConvertType(Ty), *ElementTy = DirectTy;
48304835
if (isIndirect) DirectTy = DirectTy->getPointerTo(0);
48314836

48324837
// Case 1: consume registers.
@@ -4835,8 +4840,8 @@ Address PPC32_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAList,
48354840
CGF.EmitBlock(UsingRegs);
48364841

48374842
Address RegSaveAreaPtr = Builder.CreateStructGEP(VAList, 4);
4838-
RegAddr = Address::deprecated(Builder.CreateLoad(RegSaveAreaPtr),
4839-
CharUnits::fromQuantity(8));
4843+
RegAddr = Address(Builder.CreateLoad(RegSaveAreaPtr), CGF.Int8Ty,
4844+
CharUnits::fromQuantity(8));
48404845
assert(RegAddr.getElementType() == CGF.Int8Ty);
48414846

48424847
// Floating-point registers start after the general-purpose registers.
@@ -4883,14 +4888,15 @@ Address PPC32_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAList,
48834888
}
48844889

48854890
Address OverflowAreaAddr = Builder.CreateStructGEP(VAList, 3);
4886-
Address OverflowArea = Address::deprecated(
4887-
Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), OverflowAreaAlign);
4891+
Address OverflowArea =
4892+
Address(Builder.CreateLoad(OverflowAreaAddr, "argp.cur"), CGF.Int8Ty,
4893+
OverflowAreaAlign);
48884894
// Round up address of argument to alignment
48894895
CharUnits Align = CGF.getContext().getTypeAlignInChars(Ty);
48904896
if (Align > OverflowAreaAlign) {
48914897
llvm::Value *Ptr = OverflowArea.getPointer();
4892-
OverflowArea = Address::deprecated(
4893-
emitRoundPointerUpToAlignment(CGF, Ptr, Align), Align);
4898+
OverflowArea = Address(emitRoundPointerUpToAlignment(CGF, Ptr, Align),
4899+
OverflowArea.getElementType(), Align);
48944900
}
48954901

48964902
MemAddr = Builder.CreateElementBitCast(OverflowArea, DirectTy);
@@ -4909,8 +4915,8 @@ Address PPC32_SVR4_ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAList,
49094915

49104916
// Load the pointer if the argument was passed indirectly.
49114917
if (isIndirect) {
4912-
Result = Address::deprecated(Builder.CreateLoad(Result, "aggr"),
4913-
getContext().getTypeAlignInChars(Ty));
4918+
Result = Address(Builder.CreateLoad(Result, "aggr"), ElementTy,
4919+
getContext().getTypeAlignInChars(Ty));
49144920
}
49154921

49164922
return Result;
@@ -6060,7 +6066,7 @@ Address AArch64ABIInfo::EmitAAPCSVAArg(Address VAListAddr, QualType Ty,
60606066
Address BaseAddr(CGF.Builder.CreateInBoundsGEP(CGF.Int8Ty, reg_top, reg_offs),
60616067
CGF.Int8Ty, CharUnits::fromQuantity(IsFPR ? 16 : 8));
60626068
Address RegAddr = Address::invalid();
6063-
llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty);
6069+
llvm::Type *MemTy = CGF.ConvertTypeForMem(Ty), *ElementTy = MemTy;
60646070

60656071
if (IsIndirect) {
60666072
// If it's been passed indirectly (actually a struct), whatever we find from
@@ -6143,8 +6149,8 @@ Address AArch64ABIInfo::EmitAAPCSVAArg(Address VAListAddr, QualType Ty,
61436149

61446150
OnStackPtr = CGF.Builder.CreateIntToPtr(OnStackPtr, CGF.Int8PtrTy);
61456151
}
6146-
Address OnStackAddr = Address::deprecated(
6147-
OnStackPtr, std::max(CharUnits::fromQuantity(8), TyAlign));
6152+
Address OnStackAddr = Address(OnStackPtr, CGF.Int8Ty,
6153+
std::max(CharUnits::fromQuantity(8), TyAlign));
61486154

61496155
// All stack slots are multiples of 8 bytes.
61506156
CharUnits StackSlotSize = CharUnits::fromQuantity(8);
@@ -6180,8 +6186,8 @@ Address AArch64ABIInfo::EmitAAPCSVAArg(Address VAListAddr, QualType Ty,
61806186
OnStackBlock, "vaargs.addr");
61816187

61826188
if (IsIndirect)
6183-
return Address::deprecated(CGF.Builder.CreateLoad(ResAddr, "vaarg.addr"),
6184-
TyAlign);
6189+
return Address(CGF.Builder.CreateLoad(ResAddr, "vaarg.addr"), ElementTy,
6190+
TyAlign);
61856191

61866192
return ResAddr;
61876193
}
@@ -6199,8 +6205,8 @@ Address AArch64ABIInfo::EmitDarwinVAArg(Address VAListAddr, QualType Ty,
61996205

62006206
// Empty records are ignored for parameter passing purposes.
62016207
if (isEmptyRecord(getContext(), Ty, true)) {
6202-
Address Addr = Address::deprecated(
6203-
CGF.Builder.CreateLoad(VAListAddr, "ap.cur"), SlotSize);
6208+
Address Addr = Address(CGF.Builder.CreateLoad(VAListAddr, "ap.cur"),
6209+
getVAListElementType(CGF), SlotSize);
62046210
Addr = CGF.Builder.CreateElementBitCast(Addr, CGF.ConvertTypeForMem(Ty));
62056211
return Addr;
62066212
}
@@ -6988,8 +6994,8 @@ Address ARMABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
69886994

69896995
// Empty records are ignored for parameter passing purposes.
69906996
if (isEmptyRecord(getContext(), Ty, true)) {
6991-
Address Addr =
6992-
Address::deprecated(CGF.Builder.CreateLoad(VAListAddr), SlotSize);
6997+
Address Addr = Address(CGF.Builder.CreateLoad(VAListAddr),
6998+
getVAListElementType(CGF), SlotSize);
69936999
Addr = CGF.Builder.CreateElementBitCast(Addr, CGF.ConvertTypeForMem(Ty));
69947000
return Addr;
69957001
}
@@ -7562,9 +7568,9 @@ Address SystemZABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
75627568
// single (8 byte) or double (16 byte) stack slot.
75637569
Address OverflowArgAreaPtr =
75647570
CGF.Builder.CreateStructGEP(VAListAddr, 2, "overflow_arg_area_ptr");
7565-
Address OverflowArgArea = Address::deprecated(
7566-
CGF.Builder.CreateLoad(OverflowArgAreaPtr, "overflow_arg_area"),
7567-
TyInfo.Align);
7571+
Address OverflowArgArea =
7572+
Address(CGF.Builder.CreateLoad(OverflowArgAreaPtr, "overflow_arg_area"),
7573+
CGF.Int8Ty, TyInfo.Align);
75687574
Address MemAddr =
75697575
CGF.Builder.CreateElementBitCast(OverflowArgArea, DirectTy, "mem_addr");
75707576

@@ -7639,9 +7645,9 @@ Address SystemZABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
76397645
// Work out the address of a stack argument.
76407646
Address OverflowArgAreaPtr =
76417647
CGF.Builder.CreateStructGEP(VAListAddr, 2, "overflow_arg_area_ptr");
7642-
Address OverflowArgArea = Address::deprecated(
7643-
CGF.Builder.CreateLoad(OverflowArgAreaPtr, "overflow_arg_area"),
7644-
PaddedSize);
7648+
Address OverflowArgArea =
7649+
Address(CGF.Builder.CreateLoad(OverflowArgAreaPtr, "overflow_arg_area"),
7650+
CGF.Int8Ty, PaddedSize);
76457651
Address RawMemAddr =
76467652
CGF.Builder.CreateConstByteGEP(OverflowArgArea, Padding, "raw_mem_addr");
76477653
Address MemAddr =
@@ -7661,8 +7667,8 @@ Address SystemZABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
76617667
"va_arg.addr");
76627668

76637669
if (IsIndirect)
7664-
ResAddr = Address::deprecated(
7665-
CGF.Builder.CreateLoad(ResAddr, "indirect_arg"), TyInfo.Align);
7670+
ResAddr = Address(CGF.Builder.CreateLoad(ResAddr, "indirect_arg"), ArgTy,
7671+
TyInfo.Align);
76667672

76677673
return ResAddr;
76687674
}
@@ -8600,8 +8606,8 @@ Address HexagonABIInfo::EmitVAArgFromMemory(CodeGenFunction &CGF,
86008606
// overflow area pointer to the argument type.
86018607
llvm::Type *PTy = CGF.ConvertTypeForMem(Ty);
86028608
Address AddrTyped = CGF.Builder.CreateElementBitCast(
8603-
Address::deprecated(__overflow_area_pointer,
8604-
CharUnits::fromQuantity(Align)),
8609+
Address(__overflow_area_pointer, CGF.Int8Ty,
8610+
CharUnits::fromQuantity(Align)),
86058611
PTy);
86068612

86078613
// Round up to the minimum stack alignment for varargs which is 4 bytes.
@@ -8634,7 +8640,7 @@ Address HexagonABIInfo::EmitVAArgForHexagon(CodeGenFunction &CGF,
86348640
Addr = Builder.CreateIntToPtr(AddrAsInt, BP);
86358641
}
86368642
Address AddrTyped = Builder.CreateElementBitCast(
8637-
Address::deprecated(Addr, CharUnits::fromQuantity(TyAlign)),
8643+
Address(Addr, CGF.Int8Ty, CharUnits::fromQuantity(TyAlign)),
86388644
CGF.ConvertType(Ty));
86398645

86408646
uint64_t Offset = llvm::alignTo(CGF.getContext().getTypeSize(Ty) / 8, 4);
@@ -9707,8 +9713,8 @@ Address SparcV9ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
97079713
CharUnits SlotSize = CharUnits::fromQuantity(8);
97089714

97099715
CGBuilderTy &Builder = CGF.Builder;
9710-
Address Addr =
9711-
Address::deprecated(Builder.CreateLoad(VAListAddr, "ap.cur"), SlotSize);
9716+
Address Addr = Address(Builder.CreateLoad(VAListAddr, "ap.cur"),
9717+
getVAListElementType(CGF), SlotSize);
97129718
llvm::Type *ArgPtrTy = llvm::PointerType::getUnqual(ArgTy);
97139719

97149720
auto TypeInfo = getContext().getTypeInfoInChars(Ty);
@@ -9739,8 +9745,8 @@ Address SparcV9ABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
97399745
case ABIArgInfo::IndirectAliased:
97409746
Stride = SlotSize;
97419747
ArgAddr = Builder.CreateElementBitCast(Addr, ArgPtrTy, "indirect");
9742-
ArgAddr = Address::deprecated(Builder.CreateLoad(ArgAddr, "indirect.arg"),
9743-
TypeInfo.Align);
9748+
ArgAddr = Address(Builder.CreateLoad(ArgAddr, "indirect.arg"), ArgTy,
9749+
TypeInfo.Align);
97449750
break;
97459751

97469752
case ABIArgInfo::Ignore:
@@ -10085,7 +10091,8 @@ Address XCoreABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
1008510091

1008610092
// Get the VAList.
1008710093
CharUnits SlotSize = CharUnits::fromQuantity(4);
10088-
Address AP = Address::deprecated(Builder.CreateLoad(VAListAddr), SlotSize);
10094+
Address AP = Address(Builder.CreateLoad(VAListAddr),
10095+
getVAListElementType(CGF), SlotSize);
1008910096

1009010097
// Handle the argument.
1009110098
ABIArgInfo AI = classifyArgumentType(Ty);
@@ -10116,7 +10123,7 @@ Address XCoreABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
1011610123
case ABIArgInfo::Indirect:
1011710124
case ABIArgInfo::IndirectAliased:
1011810125
Val = Builder.CreateElementBitCast(AP, ArgPtrTy);
10119-
Val = Address::deprecated(Builder.CreateLoad(Val), TypeAlign);
10126+
Val = Address(Builder.CreateLoad(Val), ArgTy, TypeAlign);
1012010127
ArgSize = SlotSize;
1012110128
break;
1012210129
}
@@ -11130,8 +11137,8 @@ Address RISCVABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
1113011137

1113111138
// Empty records are ignored for parameter passing purposes.
1113211139
if (isEmptyRecord(getContext(), Ty, true)) {
11133-
Address Addr =
11134-
Address::deprecated(CGF.Builder.CreateLoad(VAListAddr), SlotSize);
11140+
Address Addr = Address(CGF.Builder.CreateLoad(VAListAddr),
11141+
getVAListElementType(CGF), SlotSize);
1113511142
Addr = CGF.Builder.CreateElementBitCast(Addr, CGF.ConvertTypeForMem(Ty));
1113611143
return Addr;
1113711144
}

0 commit comments

Comments
 (0)