Author: Youngsuk Kim Date: 2023-11-03T17:05:44-05:00 New Revision: fc55068c0969fa83d894d46e14d4fdec05a30b2c
URL: https://github.com/llvm/llvm-project/commit/fc55068c0969fa83d894d46e14d4fdec05a30b2c DIFF: https://github.com/llvm/llvm-project/commit/fc55068c0969fa83d894d46e14d4fdec05a30b2c.diff LOG: [clang][MicrosoftCXXABI] Remove no-op ptr-to-ptr bitcasts (NFC) Opaque ptr cleanup effort (NFC) Added: Modified: clang/lib/CodeGen/MicrosoftCXXABI.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index 4e55d6be376a517..1f0e6c1be705525 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -2986,7 +2986,6 @@ MicrosoftCXXABI::EmitMemberFunctionPointer(const CXXMethodDecl *MD) { NonVirtualBaseAdjustment -= getContext().getOffsetOfBaseWithVBPtr(RD); // The rest of the fields are common with data member pointers. - FirstField = llvm::ConstantExpr::getBitCast(FirstField, CGM.VoidPtrTy); return EmitFullMemberPointer(FirstField, /*IsMemberFunction=*/true, RD, NonVirtualBaseAdjustment, VBTableIndex); } @@ -3981,7 +3980,7 @@ llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) { // Check to see if we've already declared this TypeDescriptor. if (llvm::GlobalVariable *GV = CGM.getModule().getNamedGlobal(MangledName)) - return llvm::ConstantExpr::getBitCast(GV, CGM.Int8PtrTy); + return GV; // Note for the future: If we would ever like to do deferred emission of // RTTI, check if emitting vtables opportunistically need any adjustment. @@ -4007,7 +4006,7 @@ llvm::Constant *MicrosoftCXXABI::getAddrOfRTTIDescriptor(QualType Type) { MangledName); if (Var->isWeakForLinker()) Var->setComdat(CGM.getModule().getOrInsertComdat(Var->getName())); - return llvm::ConstantExpr::getBitCast(Var, CGM.Int8PtrTy); + return Var; } /// Gets or a creates a Microsoft CompleteObjectLocator. @@ -4200,8 +4199,6 @@ llvm::Constant *MicrosoftCXXABI::getCatchableType(QualType T, CopyCtor = getAddrOfCXXCtorClosure(CD, Ctor_CopyingClosure); else CopyCtor = CGM.getAddrOfCXXStructor(GlobalDecl(CD, Ctor_Complete)); - - CopyCtor = llvm::ConstantExpr::getBitCast(CopyCtor, CGM.Int8PtrTy); } else { CopyCtor = llvm::Constant::getNullValue(CGM.Int8PtrTy); } @@ -4411,14 +4408,11 @@ llvm::GlobalVariable *MicrosoftCXXABI::getThrowInfo(QualType T) { if (const CXXRecordDecl *RD = T->getAsCXXRecordDecl()) if (CXXDestructorDecl *DtorD = RD->getDestructor()) if (!DtorD->isTrivial()) - CleanupFn = llvm::ConstantExpr::getBitCast( - CGM.getAddrOfCXXStructor(GlobalDecl(DtorD, Dtor_Complete)), - CGM.Int8PtrTy); + CleanupFn = CGM.getAddrOfCXXStructor(GlobalDecl(DtorD, Dtor_Complete)); // This is unused as far as we can tell, initialize it to null. llvm::Constant *ForwardCompat = getImageRelativeConstant(llvm::Constant::getNullValue(CGM.Int8PtrTy)); - llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant( - llvm::ConstantExpr::getBitCast(CTA, CGM.Int8PtrTy)); + llvm::Constant *PointerToCatchableTypes = getImageRelativeConstant(CTA); llvm::StructType *TIType = getThrowInfoType(); llvm::Constant *Fields[] = { llvm::ConstantInt::get(CGM.IntTy, Flags), // Flags _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits