Skip to content

Commit 21d702b

Browse files
committed
Remove emitUDMapperArrayInitOrDel func from Clang.
1 parent 599c61f commit 21d702b

File tree

2 files changed

+0
-85
lines changed

2 files changed

+0
-85
lines changed

clang/lib/CodeGen/CGOpenMPRuntime.cpp

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -9105,82 +9105,6 @@ void CGOpenMPRuntime::emitUserDefinedMapper(const OMPDeclareMapperDecl *D,
91059105
FunctionUDMMap[CGF->CurFn].push_back(D);
91069106
}
91079107

9108-
/// Emit the array initialization or deletion portion for user-defined mapper
9109-
/// code generation. First, it evaluates whether an array section is mapped and
9110-
/// whether the \a MapType instructs to delete this section. If \a IsInit is
9111-
/// true, and \a MapType indicates to not delete this array, array
9112-
/// initialization code is generated. If \a IsInit is false, and \a MapType
9113-
/// indicates to not this array, array deletion code is generated.
9114-
void CGOpenMPRuntime::emitUDMapperArrayInitOrDel(
9115-
CodeGenFunction &MapperCGF, llvm::Value *Handle, llvm::Value *Base,
9116-
llvm::Value *Begin, llvm::Value *Size, llvm::Value *MapType,
9117-
llvm::Value *MapName, CharUnits ElementSize, llvm::BasicBlock *ExitBB,
9118-
bool IsInit) {
9119-
StringRef Prefix = IsInit ? ".init" : ".del";
9120-
9121-
// Evaluate if this is an array section.
9122-
llvm::BasicBlock *BodyBB =
9123-
MapperCGF.createBasicBlock(getName({"omp.array", Prefix}));
9124-
llvm::Value *IsArray = MapperCGF.Builder.CreateICmpSGT(
9125-
Size, MapperCGF.Builder.getInt64(1), "omp.arrayinit.isarray");
9126-
llvm::Value *DeleteBit = MapperCGF.Builder.CreateAnd(
9127-
MapType,
9128-
MapperCGF.Builder.getInt64(
9129-
static_cast<std::underlying_type_t<OpenMPOffloadMappingFlags>>(
9130-
OpenMPOffloadMappingFlags::OMP_MAP_DELETE)));
9131-
llvm::Value *DeleteCond;
9132-
llvm::Value *Cond;
9133-
if (IsInit) {
9134-
// base != begin?
9135-
llvm::Value *BaseIsBegin = MapperCGF.Builder.CreateICmpNE(Base, Begin);
9136-
// IsPtrAndObj?
9137-
llvm::Value *PtrAndObjBit = MapperCGF.Builder.CreateAnd(
9138-
MapType,
9139-
MapperCGF.Builder.getInt64(
9140-
static_cast<std::underlying_type_t<OpenMPOffloadMappingFlags>>(
9141-
OpenMPOffloadMappingFlags::OMP_MAP_PTR_AND_OBJ)));
9142-
PtrAndObjBit = MapperCGF.Builder.CreateIsNotNull(PtrAndObjBit);
9143-
BaseIsBegin = MapperCGF.Builder.CreateAnd(BaseIsBegin, PtrAndObjBit);
9144-
Cond = MapperCGF.Builder.CreateOr(IsArray, BaseIsBegin);
9145-
DeleteCond = MapperCGF.Builder.CreateIsNull(
9146-
DeleteBit, getName({"omp.array", Prefix, ".delete"}));
9147-
} else {
9148-
Cond = IsArray;
9149-
DeleteCond = MapperCGF.Builder.CreateIsNotNull(
9150-
DeleteBit, getName({"omp.array", Prefix, ".delete"}));
9151-
}
9152-
Cond = MapperCGF.Builder.CreateAnd(Cond, DeleteCond);
9153-
MapperCGF.Builder.CreateCondBr(Cond, BodyBB, ExitBB);
9154-
9155-
MapperCGF.EmitBlock(BodyBB);
9156-
// Get the array size by multiplying element size and element number (i.e., \p
9157-
// Size).
9158-
llvm::Value *ArraySize = MapperCGF.Builder.CreateNUWMul(
9159-
Size, MapperCGF.Builder.getInt64(ElementSize.getQuantity()));
9160-
// Remove OMP_MAP_TO and OMP_MAP_FROM from the map type, so that it achieves
9161-
// memory allocation/deletion purpose only.
9162-
llvm::Value *MapTypeArg = MapperCGF.Builder.CreateAnd(
9163-
MapType,
9164-
MapperCGF.Builder.getInt64(
9165-
~static_cast<std::underlying_type_t<OpenMPOffloadMappingFlags>>(
9166-
OpenMPOffloadMappingFlags::OMP_MAP_TO |
9167-
OpenMPOffloadMappingFlags::OMP_MAP_FROM)));
9168-
MapTypeArg = MapperCGF.Builder.CreateOr(
9169-
MapTypeArg,
9170-
MapperCGF.Builder.getInt64(
9171-
static_cast<std::underlying_type_t<OpenMPOffloadMappingFlags>>(
9172-
OpenMPOffloadMappingFlags::OMP_MAP_IMPLICIT)));
9173-
9174-
// Call the runtime API __tgt_push_mapper_component to fill up the runtime
9175-
// data structure.
9176-
llvm::Value *OffloadingArgs[] = {Handle, Base, Begin,
9177-
ArraySize, MapTypeArg, MapName};
9178-
MapperCGF.EmitRuntimeCall(
9179-
OMPBuilder.getOrCreateRuntimeFunction(CGM.getModule(),
9180-
OMPRTL___tgt_push_mapper_component),
9181-
OffloadingArgs);
9182-
}
9183-
91849108
llvm::Function *CGOpenMPRuntime::getOrCreateUserDefinedMapperFunc(
91859109
const OMPDeclareMapperDecl *D) {
91869110
auto I = UDMMap.find(D);

clang/lib/CodeGen/CGOpenMPRuntime.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -559,15 +559,6 @@ class CGOpenMPRuntime {
559559
llvm::Value *Ctor, llvm::Value *CopyCtor,
560560
llvm::Value *Dtor, SourceLocation Loc);
561561

562-
/// Emit the array initialization or deletion portion for user-defined mapper
563-
/// code generation.
564-
void emitUDMapperArrayInitOrDel(CodeGenFunction &MapperCGF,
565-
llvm::Value *Handle, llvm::Value *BasePtr,
566-
llvm::Value *Ptr, llvm::Value *Size,
567-
llvm::Value *MapType, llvm::Value *MapName,
568-
CharUnits ElementSize,
569-
llvm::BasicBlock *ExitBB, bool IsInit);
570-
571562
struct TaskResultTy {
572563
llvm::Value *NewTask = nullptr;
573564
llvm::Function *TaskEntry = nullptr;

0 commit comments

Comments
 (0)