clang 22.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.
111 Generic, // A processor model named 'generic' if the target backend defines a
112 // public one.
113 // Intel CPUs
115 // Intel GPUs
118
121};
122
123static inline bool IsNVIDIAOffloadArch(OffloadArch A) {
124 return A >= OffloadArch::SM_20 && A < OffloadArch::GFX600;
125}
126
127static inline bool IsAMDOffloadArch(OffloadArch A) {
128 // Generic processor model is for testing only.
129 return A >= OffloadArch::GFX600 && A < OffloadArch::Generic;
130}
131
135
139
143
144const char *OffloadArchToString(OffloadArch A);
145const char *OffloadArchToVirtualArchString(OffloadArch A);
146
147// Convert a string to an OffloadArch enum value. Returns
148// OffloadArch::UNKNOWN if the string is not recognized.
149OffloadArch StringToOffloadArch(llvm::StringRef S);
150
151} // namespace clang
152
153#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:4136
Diagnostic wrappers for TextAPI types for error reporting.
Definition Dominators.h:30