Skip to content

Commit 2048836

Browse files
committed
[NFC] Replace uses of Type::getPointerTo
Replace some uses of `Type::getPointerTo` via 2 ways * Remove entirely if it's only used to support an unnecessary bitcast (remove the bitcast as well). * Replace with `PointerType::get`/`PointerType::getUnqual` NFC opaque pointer clean-up effort.
1 parent b6e568d commit 2048836

File tree

4 files changed

+9
-29
lines changed

4 files changed

+9
-29
lines changed

clang/lib/CodeGen/CGRecordLayoutBuilder.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -658,9 +658,9 @@ void CGRecordLowering::computeVolatileBitfields() {
658658

659659
void CGRecordLowering::accumulateVPtrs() {
660660
if (Layout.hasOwnVFPtr())
661-
Members.push_back(MemberInfo(CharUnits::Zero(), MemberInfo::VFPtr,
662-
llvm::FunctionType::get(getIntNType(32), /*isVarArg=*/true)->
663-
getPointerTo()->getPointerTo()));
661+
Members.push_back(
662+
MemberInfo(CharUnits::Zero(), MemberInfo::VFPtr,
663+
llvm::PointerType::getUnqual(Types.getLLVMContext())));
664664
if (Layout.hasOwnVBPtr())
665665
Members.push_back(
666666
MemberInfo(Layout.getVBPtrOffset(), MemberInfo::VBPtr,

clang/lib/CodeGen/MicrosoftCXXABI.cpp

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,8 +1262,6 @@ void MicrosoftCXXABI::initializeHiddenVirtualInheritanceMembers(
12621262
Builder.CreateInBoundsGEP(CGF.Int8Ty, Int8This, VBaseOffset);
12631263
// vtorDisp is always the 32-bits before the vbase in the class layout.
12641264
VtorDispPtr = Builder.CreateConstGEP1_32(CGF.Int8Ty, VtorDispPtr, -4);
1265-
VtorDispPtr = Builder.CreateBitCast(
1266-
VtorDispPtr, CGF.Int32Ty->getPointerTo(AS), "vtordisp.ptr");
12671265

12681266
Builder.CreateAlignedStore(VtorDispValue, VtorDispPtr,
12691267
CharUnits::fromQuantity(4));
@@ -1568,14 +1566,9 @@ void MicrosoftCXXABI::EmitInstanceFunctionProlog(CodeGenFunction &CGF) {
15681566
if (!CGF.CurFuncIsThunk && MD->isVirtual()) {
15691567
CharUnits Adjustment = getVirtualFunctionPrologueThisAdjustment(CGF.CurGD);
15701568
if (!Adjustment.isZero()) {
1571-
unsigned AS = cast<llvm::PointerType>(This->getType())->getAddressSpace();
1572-
llvm::Type *charPtrTy = CGF.Int8Ty->getPointerTo(AS),
1573-
*thisTy = This->getType();
1574-
This = CGF.Builder.CreateBitCast(This, charPtrTy);
15751569
assert(Adjustment.isPositive());
15761570
This = CGF.Builder.CreateConstInBoundsGEP1_32(CGF.Int8Ty, This,
15771571
-Adjustment.getQuantity());
1578-
This = CGF.Builder.CreateBitCast(This, thisTy, "this.adjusted");
15791572
}
15801573
}
15811574
setCXXABIThisValue(CGF, This);
@@ -2511,9 +2504,6 @@ LValue MicrosoftCXXABI::EmitThreadLocalVarDeclLValue(CodeGenFunction &CGF,
25112504
llvm::Value *V = CGF.CGM.GetAddrOfGlobalVar(VD);
25122505
llvm::Type *RealVarTy = CGF.getTypes().ConvertTypeForMem(VD->getType());
25132506

2514-
unsigned AS = cast<llvm::PointerType>(V->getType())->getAddressSpace();
2515-
V = CGF.Builder.CreateBitCast(V, RealVarTy->getPointerTo(AS));
2516-
25172507
CharUnits Alignment = CGF.getContext().getDeclAlign(VD);
25182508
Address Addr(V, RealVarTy, Alignment);
25192509

@@ -3226,9 +3216,6 @@ llvm::Value *MicrosoftCXXABI::EmitMemberDataPointerAddress(
32263216
CodeGenFunction &CGF, const Expr *E, Address Base, llvm::Value *MemPtr,
32273217
const MemberPointerType *MPT) {
32283218
assert(MPT->isMemberDataPointer());
3229-
unsigned AS = Base.getAddressSpace();
3230-
llvm::Type *PType =
3231-
CGF.ConvertTypeForMem(MPT->getPointeeType())->getPointerTo(AS);
32323219
CGBuilderTy &Builder = CGF.Builder;
32333220
const CXXRecordDecl *RD = MPT->getMostRecentCXXRecordDecl();
32343221
MSInheritanceModel Inheritance = RD->getMSInheritanceModel();
@@ -3256,16 +3243,9 @@ llvm::Value *MicrosoftCXXABI::EmitMemberDataPointerAddress(
32563243
Addr = Base.getPointer();
32573244
}
32583245

3259-
// Cast to char*.
3260-
Addr = Builder.CreateBitCast(Addr, CGF.Int8Ty->getPointerTo(AS));
3261-
32623246
// Apply the offset, which we assume is non-null.
3263-
Addr = Builder.CreateInBoundsGEP(CGF.Int8Ty, Addr, FieldOffset,
3247+
return Builder.CreateInBoundsGEP(CGF.Int8Ty, Addr, FieldOffset,
32643248
"memptr.offset");
3265-
3266-
// Cast the address to the appropriate pointer type, adopting the address
3267-
// space of the base pointer.
3268-
return Builder.CreateBitCast(Addr, PType);
32693249
}
32703250

32713251
llvm::Value *

llvm/lib/CodeGen/GlobalISel/CallLowering.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,8 @@ void CallLowering::insertSRetLoads(MachineIRBuilder &MIRBuilder, Type *RetTy,
847847

848848
unsigned NumValues = SplitVTs.size();
849849
Align BaseAlign = DL.getPrefTypeAlign(RetTy);
850-
Type *RetPtrTy = RetTy->getPointerTo(DL.getAllocaAddrSpace());
850+
Type *RetPtrTy =
851+
PointerType::get(RetTy->getContext(), DL.getAllocaAddrSpace());
851852
LLT OffsetLLTy = getLLTForType(*DL.getIndexType(RetPtrTy), DL);
852853

853854
MachinePointerInfo PtrInfo = MachinePointerInfo::getFixedStack(MF, FI);

mlir/lib/ExecutionEngine/ExecutionEngine.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ static void packFunctionArguments(Module *module) {
155155

156156
// Given a function `foo(<...>)`, define the interface function
157157
// `mlir_foo(i8**)`.
158-
auto *newType = llvm::FunctionType::get(
159-
builder.getVoidTy(), builder.getInt8PtrTy()->getPointerTo(),
160-
/*isVarArg=*/false);
158+
auto *newType =
159+
llvm::FunctionType::get(builder.getVoidTy(), builder.getPtrTy(),
160+
/*isVarArg=*/false);
161161
auto newName = makePackedFunctionName(func.getName());
162162
auto funcCst = module->getOrInsertFunction(newName, newType);
163163
llvm::Function *interfaceFunc = cast<llvm::Function>(funcCst.getCallee());
@@ -179,7 +179,6 @@ static void packFunctionArguments(Module *module) {
179179
llvm::Value *argPtr =
180180
builder.CreateLoad(builder.getInt8PtrTy(), argPtrPtr);
181181
llvm::Type *argTy = arg.getType();
182-
argPtr = builder.CreateBitCast(argPtr, argTy->getPointerTo());
183182
llvm::Value *load = builder.CreateLoad(argTy, argPtr);
184183
args.push_back(load);
185184
}

0 commit comments

Comments
 (0)