Skip to content

Commit fc55068

Browse files
committed
[clang][MicrosoftCXXABI] Remove no-op ptr-to-ptr bitcasts (NFC)
Opaque ptr cleanup effort (NFC)
1 parent c92cf31 commit fc55068

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

clang/lib/CodeGen/MicrosoftCXXABI.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2986,7 +2986,6 @@ MicrosoftCXXABI::EmitMemberFunctionPointer(const CXXMethodDecl *MD) {
29862986
NonVirtualBaseAdjustment -= getContext().getOffsetOfBaseWithVBPtr(RD);
29872987

29882988
// The rest of the fields are common with data member pointers.
2989-
FirstField = llvm::ConstantExpr::getBitCast(FirstField, CGM.VoidPtrTy);
29902989
return EmitFullMemberPointer(FirstField, /*IsMemberFunction=*/true, RD,
29912990
NonVirtualBaseAdjustment, VBTableIndex);
29922991
}
@@ -3981,7 +3980,7 @@ llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) {
39813980

39823981
// Check to see if we've already declared this TypeDescriptor.
39833982
if (llvm::GlobalVariable *GV = CGM.getModule().getNamedGlobal(MangledName))
3984-
return llvm::ConstantExpr::getBitCast(GV, CGM.Int8PtrTy);
3983+
return GV;
39853984

39863985
// Note for the future: If we would ever like to do deferred emission of
39873986
// RTTI, check if emitting vtables opportunistically need any adjustment.
@@ -4007,7 +4006,7 @@ llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) {
40074006
MangledName);
40084007
if (Var->isWeakForLinker())
40094008
Var->setComdat(CGM.getModule().getOrInsertComdat(Var->getName()));
4010-
return llvm::ConstantExpr::getBitCast(Var, CGM.Int8PtrTy);
4009+
return Var;
40114010
}
40124011

40134012
/// Gets or a creates a Microsoft CompleteObjectLocator.
@@ -4200,8 +4199,6 @@ llvm::Constant *MicrosoftCXXABI::getCatchableType(QualType T,
42004199
CopyCtor = getAddrOfCXXCtorClosure(CD, Ctor_CopyingClosure);
42014200
else
42024201
CopyCtor = CGM.getAddrOfCXXStructor(GlobalDecl(CD, Ctor_Complete));
4203-
4204-
CopyCtor = llvm::ConstantExpr::getBitCast(CopyCtor, CGM.Int8PtrTy);
42054202
} else {
42064203
CopyCtor = llvm::Constant::getNullValue(CGM.Int8PtrTy);
42074204
}
@@ -4411,14 +4408,11 @@ llvm::GlobalVariable *MicrosoftCXXABI::getThrowInfo(QualType T) {
44114408
if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl())
44124409
if (CXXDestructorDecl *DtorD = RD->getDestructor())
44134410
if (!DtorD->isTrivial())
4414-
CleanupFn = llvm::ConstantExpr::getBitCast(
4415-
CGM.getAddrOfCXXStructor(GlobalDecl(DtorD, Dtor_Complete)),
4416-
CGM.Int8PtrTy);
4411+
CleanupFn = CGM.getAddrOfCXXStructor(GlobalDecl(DtorD, Dtor_Complete));
44174412
// This is unused as far as we can tell, initialize it to null.
44184413
llvm::Constant *ForwardCompat =
44194414
getImageRelativeConstant(llvm::Constant::getNullValue(CGM.Int8PtrTy));
4420-
llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant(
4421-
llvm::ConstantExpr::getBitCast(CTA, CGM.Int8PtrTy));
4415+
llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant(CTA);
44224416
llvm::StructType *TIType = getThrowInfoType();
44234417
llvm::Constant *Fields[] = {
44244418
llvm::ConstantInt::get(CGM.IntTy, Flags), // Flags

0 commit comments

Comments
 (0)