mirror of
https://github.com/intel/llvm.git
synced 2026-01-13 19:08:21 +08:00
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.
80 lines
2.4 KiB
C
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
|