Author: Nikita Popov Date: 2022-03-22T15:02:45+01:00 New Revision: 73c0d05e6a90612399de06a98201e9d6a9059797
URL: https://github.com/llvm/llvm-project/commit/73c0d05e6a90612399de06a98201e9d6a9059797 DIFF: https://github.com/llvm/llvm-project/commit/73c0d05e6a90612399de06a98201e9d6a9059797.diff LOG: [CGOpenMPRuntimeGPU] Remove uses of deprecated address constructor Worth noting that the code marked with FIXME is dead and would produce invalid IR if hit. Someone familiar with this code should probably look into that. Added: Modified: clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp index f8f469d09bb5d..78d6d1b1f93fe 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp @@ -2042,6 +2042,8 @@ static void emitReductionListCopy( // address of the next element in scratchpad memory, unless we're currently // processing the last one. Memory alignment is also taken care of here. if ((IncrScratchpadDest || IncrScratchpadSrc) && (Idx + 1 < Size)) { + // FIXME: This code doesn't make any sense, it's trying to perform + // integer arithmetic on pointers. llvm::Value *ScratchpadBasePtr = IncrScratchpadDest ? DestBase.getPointer() : SrcBase.getPointer(); llvm::Value *ElementSizeInChars = CGF.getTypeSize(Private->getType()); @@ -2063,9 +2065,10 @@ static void emitReductionListCopy( if (IncrScratchpadDest) DestBase = - Address::deprecated(ScratchpadBasePtr, CGF.getPointerAlign()); + Address(ScratchpadBasePtr, CGF.VoidPtrTy, CGF.getPointerAlign()); else /* IncrScratchpadSrc = true */ - SrcBase = Address::deprecated(ScratchpadBasePtr, CGF.getPointerAlign()); + SrcBase = + Address(ScratchpadBasePtr, CGF.VoidPtrTy, CGF.getPointerAlign()); } ++Idx; @@ -2214,7 +2217,7 @@ static llvm::Value *emitInterWarpCopyFunction(CodeGenModule &CGM, llvm::Value *ElemPtrPtr = CGF.EmitLoadOfScalar( ElemPtrPtrAddr, /*Volatile=*/false, C.VoidPtrTy, SourceLocation()); // elemptr = ((CopyType*)(elemptrptr)) + I - Address ElemPtr = Address::deprecated(ElemPtrPtr, Align); + Address ElemPtr(ElemPtrPtr, CGF.Int8Ty, Align); ElemPtr = Bld.CreateElementBitCast(ElemPtr, CopyType); if (NumIters > 1) ElemPtr = Bld.CreateGEP(ElemPtr, Cnt); @@ -2224,10 +2227,14 @@ static llvm::Value *emitInterWarpCopyFunction(CodeGenModule &CGM, llvm::Value *MediumPtrVal = Bld.CreateInBoundsGEP( TransferMedium->getValueType(), TransferMedium, {llvm::Constant::getNullValue(CGM.Int64Ty), WarpID}); - Address MediumPtr = Address::deprecated(MediumPtrVal, Align); // Casting to actual data type. // MediumPtr = (CopyType*)MediumPtrAddr; - MediumPtr = Bld.CreateElementBitCast(MediumPtr, CopyType); + Address MediumPtr( + Bld.CreateBitCast( + MediumPtrVal, + CopyType->getPointerTo( + MediumPtrVal->getType()->getPointerAddressSpace())), + CopyType, Align); // elem = *elemptr //*MediumPtr = elem @@ -2273,15 +2280,19 @@ static llvm::Value *emitInterWarpCopyFunction(CodeGenModule &CGM, llvm::Value *SrcMediumPtrVal = Bld.CreateInBoundsGEP( TransferMedium->getValueType(), TransferMedium, {llvm::Constant::getNullValue(CGM.Int64Ty), ThreadID}); - Address SrcMediumPtr = Address::deprecated(SrcMediumPtrVal, Align); // SrcMediumVal = *SrcMediumPtr; - SrcMediumPtr = Bld.CreateElementBitCast(SrcMediumPtr, CopyType); + Address SrcMediumPtr( + Bld.CreateBitCast( + SrcMediumPtrVal, + CopyType->getPointerTo( + SrcMediumPtrVal->getType()->getPointerAddressSpace())), + CopyType, Align); // TargetElemPtr = (CopyType*)(SrcDataAddr[i]) + I Address TargetElemPtrPtr = Bld.CreateConstArrayGEP(LocalReduceList, Idx); llvm::Value *TargetElemPtrVal = CGF.EmitLoadOfScalar( TargetElemPtrPtr, /*Volatile=*/false, C.VoidPtrTy, Loc); - Address TargetElemPtr = Address::deprecated(TargetElemPtrVal, Align); + Address TargetElemPtr(TargetElemPtrVal, CGF.Int8Ty, Align); TargetElemPtr = Bld.CreateElementBitCast(TargetElemPtr, CopyType); if (NumIters > 1) TargetElemPtr = Bld.CreateGEP(TargetElemPtr, Cnt); @@ -2609,10 +2620,11 @@ static llvm::Value *emitListToGlobalCopyFunction( LValue GlobLVal = CGF.EmitLValueForField( CGF.MakeNaturalAlignAddrLValue(BufferArrPtr, StaticTy), FD); Address GlobAddr = GlobLVal.getAddress(CGF); - llvm::Value *BufferPtr = Bld.CreateInBoundsGEP( - GlobAddr.getElementType(), GlobAddr.getPointer(), Idxs); - GlobLVal.setAddress( - Address::deprecated(BufferPtr, GlobAddr.getAlignment())); + llvm::Value *BufferPtr = Bld.CreateInBoundsGEP(GlobAddr.getElementType(), + GlobAddr.getPointer(), Idxs); + GlobLVal.setAddress(Address(BufferPtr, + CGF.ConvertTypeForMem(Private->getType()), + GlobAddr.getAlignment())); switch (CGF.getEvaluationKind(Private->getType())) { case TEK_Scalar: { llvm::Value *V = CGF.EmitLoadOfScalar( @@ -2818,10 +2830,11 @@ static llvm::Value *emitGlobalToListCopyFunction( LValue GlobLVal = CGF.EmitLValueForField( CGF.MakeNaturalAlignAddrLValue(BufferArrPtr, StaticTy), FD); Address GlobAddr = GlobLVal.getAddress(CGF); - llvm::Value *BufferPtr = Bld.CreateInBoundsGEP( - GlobAddr.getElementType(), GlobAddr.getPointer(), Idxs); - GlobLVal.setAddress( - Address::deprecated(BufferPtr, GlobAddr.getAlignment())); + llvm::Value *BufferPtr = Bld.CreateInBoundsGEP(GlobAddr.getElementType(), + GlobAddr.getPointer(), Idxs); + GlobLVal.setAddress(Address(BufferPtr, + CGF.ConvertTypeForMem(Private->getType()), + GlobAddr.getAlignment())); switch (CGF.getEvaluationKind(Private->getType())) { case TEK_Scalar: { llvm::Value *V = CGF.EmitLoadOfScalar(GlobLVal, Loc); @@ -3303,7 +3316,7 @@ void CGOpenMPRuntimeGPU::emitReduction( "_openmp_teams_reductions_buffer_$_$ptr"); } llvm::Value *GlobalBufferPtr = CGF.EmitLoadOfScalar( - Address::deprecated(KernelTeamsReductionPtr, CGM.getPointerAlign()), + Address(KernelTeamsReductionPtr, CGF.VoidPtrTy, CGM.getPointerAlign()), /*Volatile=*/false, C.getPointerType(C.VoidPtrTy), Loc); llvm::Value *GlobalToBufferCpyFn = ::emitListToGlobalCopyFunction( CGM, Privates, ReductionArrayTy, Loc, TeamReductionRec, VarFieldMap); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits