Files
llvm/offload/include/Shared/Environment.h
Joseph Huber 670c453aeb [Offload] Remove handling for device memory pool (#163629)
Summary:
This was a lot of code that was only used for upstream LLVM builds of
AMDGPU offloading. We have a generic and fast `malloc` in `libc` now so
just use that. Simplifies code, can be added back if we start providing
alternate forms but I don't think there's a single use-case that would
justify it yet.
2025-11-06 10:15:18 -06:00

80 lines
2.4 KiB
C

//===-- Shared/Environment.h - OpenMP GPU environments ------------ C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Environments shared between host and device.
//
//===----------------------------------------------------------------------===//
#ifndef OMPTARGET_SHARED_ENVIRONMENT_H
#define OMPTARGET_SHARED_ENVIRONMENT_H
#include <stdint.h>
struct IdentTy;
enum class DeviceDebugKind : uint32_t {
Assertion = 1U << 0,
FunctionTracing = 1U << 1,
CommonIssues = 1U << 2,
PGODump = 1U << 4,
};
struct DeviceEnvironmentTy {
uint32_t DeviceDebugKind;
uint32_t NumDevices;
uint32_t DeviceNum;
uint32_t DynamicMemSize;
uint64_t ClockFrequency;
uintptr_t IndirectCallTable;
uint64_t IndirectCallTableSize;
uint64_t HardwareParallelism;
};
// NOTE: Please don't change the order of those members as their indices are
// used in the middle end. Always add the new data member at the end.
// Different from KernelEnvironmentTy below, this structure contains members
// that might be modified at runtime.
struct DynamicEnvironmentTy {
/// Current indentation level for the function trace. Only accessed by thread
/// 0.
uint16_t DebugIndentionLevel;
};
// NOTE: Please don't change the order of those members as their indices are
// used in the middle end. Always add the new data member at the end.
struct ConfigurationEnvironmentTy {
uint8_t UseGenericStateMachine = 2;
uint8_t MayUseNestedParallelism = 2;
uint8_t ExecMode = 0;
// Information about (legal) launch configurations.
//{
int32_t MinThreads = -1;
int32_t MaxThreads = -1;
int32_t MinTeams = -1;
int32_t MaxTeams = -1;
int32_t ReductionDataSize = 0;
int32_t ReductionBufferLength = 0;
//}
};
// NOTE: Please don't change the order of those members as their indices are
// used in the middle end. Always add the new data member at the end.
struct KernelEnvironmentTy {
ConfigurationEnvironmentTy Configuration;
IdentTy *Ident = nullptr;
DynamicEnvironmentTy *DynamicEnv = nullptr;
};
struct KernelLaunchEnvironmentTy {
uint32_t ReductionCnt = 0;
uint32_t ReductionIterCnt = 0;
void *ReductionBuffer = nullptr;
};
#endif // OMPTARGET_SHARED_ENVIRONMENT_H