clang 23.0.0git
OffloadArch.h
Go to the documentation of this file.
1//===--- OffloadArch.h - Definition of offloading architectures --- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_CLANG_BASIC_OFFLOADARCH_H
10#define LLVM_CLANG_BASIC_OFFLOADARCH_H
11
12namespace llvm {
13class StringRef;
14} // namespace llvm
15
16namespace clang {
17
18enum class OffloadArch {
21 // TODO: Deprecate and remove GPU architectures older than sm_52.
25 // This has a name conflict with sys/mac.h on AIX, rename it as a workaround.
114 Generic, // A processor model named 'generic' if the target backend defines a
115 // public one.
116 // Intel CPUs
118 // Intel GPUs
121
124};
125
126static inline bool IsNVIDIAOffloadArch(OffloadArch A) {
127 return A >= OffloadArch::SM_20 && A < OffloadArch::GFX600;
128}
129
130static inline bool IsAMDOffloadArch(OffloadArch A) {
131 // Generic processor model is for testing only.
132 return A >= OffloadArch::GFX600 && A < OffloadArch::Generic;
133}
134
138
142
146
147const char *OffloadArchToString(OffloadArch A);
148const char *OffloadArchToVirtualArchString(OffloadArch A);
149
150// Convert a string to an OffloadArch enum value. Returns
151// OffloadArch::UNKNOWN if the string is not recognized.
152OffloadArch StringToOffloadArch(llvm::StringRef S);
153
154} // namespace clang
155
156#endif // LLVM_CLANG_BASIC_OFFLOADARCH_H
The JSON file list parser is used to communicate input to InstallAPI.
static bool IsIntelOffloadArch(OffloadArch Arch)
static bool IsIntelCPUOffloadArch(OffloadArch Arch)
static bool IsAMDOffloadArch(OffloadArch A)
static bool IsNVIDIAOffloadArch(OffloadArch A)
const char * OffloadArchToVirtualArchString(OffloadArch A)
OffloadArch StringToOffloadArch(llvm::StringRef S)
const char * OffloadArchToString(OffloadArch A)
static bool IsIntelGPUOffloadArch(OffloadArch Arch)
@ Generic
not a target-specific vector type
Definition TypeBase.h:4144
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30