LLVM 24.0.0git
SPIRVAddrSpace.h
Go to the documentation of this file.
1//===---------------- SPIRVAddrSpace.h --------------------------*- 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/// \file
10/// SPIR-V address space definition
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_SUPPORT_SPIRVADDRSPACE_H
15#define LLVM_SUPPORT_SPIRVADDRSPACE_H
16
17namespace llvm {
18namespace SPIRVAS {
19
20/// LLVM IR address space numbers used by the SPIR-V target. Each address
21/// space maps to the SPIR-V storage class it is named after. This is kept
22/// separate from SPIRV::StorageClass, which is tablegen'd inside the SPIR-V
23/// backend, so that it stays dependency-free and usable from clang and other
24/// non-backend code.
25enum AddressSpace : unsigned {
31 // TODO: DeviceOnlyINTEL and HostOnlyINTEL back Clang's global_device and
32 // global_host address spaces, which are deprecated (#203569). Remove these
33 // entries once those address spaces are removed.
36 Input = 7,
37 Output = 8,
39 Private = 10,
41 Uniform = 12,
43};
44
45} // end namespace SPIRVAS
46} // end namespace llvm
47
48#endif // LLVM_SUPPORT_SPIRVADDRSPACE_H
AddressSpace
LLVM IR address space numbers used by the SPIR-V target.
This is an optimization pass for GlobalISel generic memory operations.