Skip to content

Commit 834c8ff

Browse files
committed
[CodeGen] Avoid some uses of deprecated Address constructor
Explicitly pass in the element type instead.
1 parent 3425b1b commit 834c8ff

File tree

2 files changed

+25
-14
lines changed

2 files changed

+25
-14
lines changed

clang/lib/CodeGen/CGBuilder.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ class CGBuilderTy : public CGBuilderBaseTy {
197197

198198
return Address(CreateStructGEP(Addr.getElementType(),
199199
Addr.getPointer(), Index, Name),
200+
ElTy->getElementType(Index),
200201
Addr.getAlignment().alignmentAtOffset(Offset));
201202
}
202203

@@ -218,6 +219,7 @@ class CGBuilderTy : public CGBuilderBaseTy {
218219
return Address(
219220
CreateInBoundsGEP(Addr.getElementType(), Addr.getPointer(),
220221
{getSize(CharUnits::Zero()), getSize(Index)}, Name),
222+
ElTy->getElementType(),
221223
Addr.getAlignment().alignmentAtOffset(Index * EltSize));
222224
}
223225

@@ -234,6 +236,7 @@ class CGBuilderTy : public CGBuilderBaseTy {
234236

235237
return Address(CreateInBoundsGEP(Addr.getElementType(), Addr.getPointer(),
236238
getSize(Index), Name),
239+
ElTy,
237240
Addr.getAlignment().alignmentAtOffset(Index * EltSize));
238241
}
239242

@@ -250,6 +253,7 @@ class CGBuilderTy : public CGBuilderBaseTy {
250253

251254
return Address(CreateGEP(Addr.getElementType(), Addr.getPointer(),
252255
getSize(Index), Name),
256+
Addr.getElementType(),
253257
Addr.getAlignment().alignmentAtOffset(Index * EltSize));
254258
}
255259

@@ -259,13 +263,15 @@ class CGBuilderTy : public CGBuilderBaseTy {
259263
assert(Addr.getElementType() == TypeCache.Int8Ty);
260264
return Address(CreateInBoundsGEP(Addr.getElementType(), Addr.getPointer(),
261265
getSize(Offset), Name),
266+
Addr.getElementType(),
262267
Addr.getAlignment().alignmentAtOffset(Offset));
263268
}
264269
Address CreateConstByteGEP(Address Addr, CharUnits Offset,
265270
const llvm::Twine &Name = "") {
266271
assert(Addr.getElementType() == TypeCache.Int8Ty);
267272
return Address(CreateGEP(Addr.getElementType(), Addr.getPointer(),
268273
getSize(Offset), Name),
274+
Addr.getElementType(),
269275
Addr.getAlignment().alignmentAtOffset(Offset));
270276
}
271277

@@ -281,8 +287,9 @@ class CGBuilderTy : public CGBuilderBaseTy {
281287
/*isSigned=*/true);
282288
if (!GEP->accumulateConstantOffset(DL, Offset))
283289
llvm_unreachable("offset of GEP with constants is always computable");
284-
return Address(GEP, Addr.getAlignment().alignmentAtOffset(
285-
CharUnits::fromQuantity(Offset.getSExtValue())));
290+
return Address(GEP, GEP->getResultElementType(),
291+
Addr.getAlignment().alignmentAtOffset(
292+
CharUnits::fromQuantity(Offset.getSExtValue())));
286293
}
287294

288295
using CGBuilderBaseTy::CreateMemCpy;
@@ -333,6 +340,7 @@ class CGBuilderTy : public CGBuilderBaseTy {
333340

334341
return Address(CreatePreserveStructAccessIndex(ElTy, Addr.getPointer(),
335342
Index, FieldIndex, DbgInfo),
343+
ElTy->getElementType(Index),
336344
Addr.getAlignment().alignmentAtOffset(Offset));
337345
}
338346
};

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5246,9 +5246,9 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
52465246
llvm::Type *BPP = Int8PtrPtrTy;
52475247

52485248
DestAddr = Address(Builder.CreateBitCast(DestAddr.getPointer(), BPP, "cp"),
5249-
DestAddr.getAlignment());
5249+
Int8PtrTy, DestAddr.getAlignment());
52505250
SrcAddr = Address(Builder.CreateBitCast(SrcAddr.getPointer(), BPP, "ap"),
5251-
SrcAddr.getAlignment());
5251+
Int8PtrTy, SrcAddr.getAlignment());
52525252

52535253
Value *ArgPtr = Builder.CreateLoad(SrcAddr, "ap.val");
52545254
return RValue::get(Builder.CreateStore(ArgPtr, DestAddr));
@@ -15405,7 +15405,8 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
1540515405
// If the user wants the entire vector, just load the entire vector.
1540615406
if (NumBytes == 16) {
1540715407
Value *BC = Builder.CreateBitCast(Ops[0], ResTy->getPointerTo());
15408-
Value *LD = Builder.CreateLoad(Address(BC, CharUnits::fromQuantity(1)));
15408+
Value *LD =
15409+
Builder.CreateLoad(Address(BC, ResTy, CharUnits::fromQuantity(1)));
1540915410
if (!IsLE)
1541015411
return LD;
1541115412

@@ -15466,8 +15467,8 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
1546615467
RevMask.push_back(15 - Idx);
1546715468
StVec = Builder.CreateShuffleVector(Ops[2], Ops[2], RevMask);
1546815469
}
15469-
return Builder.CreateStore(StVec,
15470-
Address(BC, CharUnits::fromQuantity(1)));
15470+
return Builder.CreateStore(
15471+
StVec, Address(BC, Ops[2]->getType(), CharUnits::fromQuantity(1)));
1547115472
}
1547215473
auto *ConvTy = Int64Ty;
1547315474
unsigned NumElts = 0;
@@ -15501,8 +15502,8 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
1550115502
Function *F = CGM.getIntrinsic(Intrinsic::bswap, ConvTy);
1550215503
Elt = Builder.CreateCall(F, Elt);
1550315504
}
15504-
return Builder.CreateStore(Elt,
15505-
Address(PtrBC, CharUnits::fromQuantity(1)));
15505+
return Builder.CreateStore(
15506+
Elt, Address(PtrBC, ConvTy, CharUnits::fromQuantity(1)));
1550615507
};
1550715508
unsigned Stored = 0;
1550815509
unsigned RemainingBytes = NumBytes;
@@ -16296,7 +16297,8 @@ Value *EmitAMDGPUWorkGroupSize(CodeGenFunction &CGF, unsigned Index) {
1629616297
auto *DstTy =
1629716298
CGF.Int16Ty->getPointerTo(GEP->getType()->getPointerAddressSpace());
1629816299
auto *Cast = CGF.Builder.CreateBitCast(GEP, DstTy);
16299-
auto *LD = CGF.Builder.CreateLoad(Address(Cast, CharUnits::fromQuantity(2)));
16300+
auto *LD = CGF.Builder.CreateLoad(
16301+
Address(Cast, CGF.Int16Ty, CharUnits::fromQuantity(2)));
1630016302
llvm::MDBuilder MDHelper(CGF.getLLVMContext());
1630116303
llvm::MDNode *RNode = MDHelper.createRange(APInt(16, 1),
1630216304
APInt(16, CGF.getTarget().getMaxOpenCLWorkGroupSize() + 1));
@@ -16316,7 +16318,8 @@ Value *EmitAMDGPUGridSize(CodeGenFunction &CGF, unsigned Index) {
1631616318
auto *DstTy =
1631716319
CGF.Int32Ty->getPointerTo(GEP->getType()->getPointerAddressSpace());
1631816320
auto *Cast = CGF.Builder.CreateBitCast(GEP, DstTy);
16319-
auto *LD = CGF.Builder.CreateLoad(Address(Cast, CharUnits::fromQuantity(4)));
16321+
auto *LD = CGF.Builder.CreateLoad(
16322+
Address(Cast, CGF.Int32Ty, CharUnits::fromQuantity(4)));
1632016323
LD->setMetadata(llvm::LLVMContext::MD_invariant_load,
1632116324
llvm::MDNode::get(CGF.getLLVMContext(), None));
1632216325
return LD;
@@ -18616,8 +18619,8 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID,
1861618619
auto MakeCircOp = [this, E](unsigned IntID, bool IsLoad) {
1861718620
// The base pointer is passed by address, so it needs to be loaded.
1861818621
Address A = EmitPointerWithAlignment(E->getArg(0));
18619-
Address BP = Address(
18620-
Builder.CreateBitCast(A.getPointer(), Int8PtrPtrTy), A.getAlignment());
18622+
Address BP = Address(Builder.CreateBitCast(
18623+
A.getPointer(), Int8PtrPtrTy), Int8PtrTy, A.getAlignment());
1862118624
llvm::Value *Base = Builder.CreateLoad(BP);
1862218625
// The treatment of both loads and stores is the same: the arguments for
1862318626
// the builtin are the same as the arguments for the intrinsic.
@@ -18661,7 +18664,7 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID,
1866118664
// per call.
1866218665
Address DestAddr = EmitPointerWithAlignment(E->getArg(1));
1866318666
DestAddr = Address(Builder.CreateBitCast(DestAddr.getPointer(), Int8PtrTy),
18664-
DestAddr.getAlignment());
18667+
Int8Ty, DestAddr.getAlignment());
1866518668
llvm::Value *DestAddress = DestAddr.getPointer();
1866618669

1866718670
// Operands are Base, Dest, Modifier.

0 commit comments

Comments
 (0)