LLVM
24.0.0git
include
llvm
Support
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
17
namespace
llvm
{
18
namespace
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.
25
enum
AddressSpace
:
unsigned
{
26
Function
= 0,
27
CrossWorkgroup
= 1,
28
UniformConstant
= 2,
29
Workgroup
= 3,
30
Generic
= 4,
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.
34
DeviceOnlyINTEL
= 5,
35
HostOnlyINTEL
= 6,
36
Input
= 7,
37
Output
= 8,
38
CodeSectionINTEL
= 9,
39
Private
= 10,
40
StorageBuffer
= 11,
41
Uniform
= 12,
42
PushConstant
= 13,
43
};
44
45
}
// end namespace SPIRVAS
46
}
// end namespace llvm
47
48
#endif
// LLVM_SUPPORT_SPIRVADDRSPACE_H
llvm::SPIRVAS
Definition
SPIRVAddrSpace.h:18
llvm::SPIRVAS::AddressSpace
AddressSpace
LLVM IR address space numbers used by the SPIR-V target.
Definition
SPIRVAddrSpace.h:25
llvm::SPIRVAS::CodeSectionINTEL
@ CodeSectionINTEL
Definition
SPIRVAddrSpace.h:38
llvm::SPIRVAS::Input
@ Input
Definition
SPIRVAddrSpace.h:36
llvm::SPIRVAS::Generic
@ Generic
Definition
SPIRVAddrSpace.h:30
llvm::SPIRVAS::StorageBuffer
@ StorageBuffer
Definition
SPIRVAddrSpace.h:40
llvm::SPIRVAS::Uniform
@ Uniform
Definition
SPIRVAddrSpace.h:41
llvm::SPIRVAS::Function
@ Function
Definition
SPIRVAddrSpace.h:26
llvm::SPIRVAS::UniformConstant
@ UniformConstant
Definition
SPIRVAddrSpace.h:28
llvm::SPIRVAS::CrossWorkgroup
@ CrossWorkgroup
Definition
SPIRVAddrSpace.h:27
llvm::SPIRVAS::DeviceOnlyINTEL
@ DeviceOnlyINTEL
Definition
SPIRVAddrSpace.h:34
llvm::SPIRVAS::Workgroup
@ Workgroup
Definition
SPIRVAddrSpace.h:29
llvm::SPIRVAS::Private
@ Private
Definition
SPIRVAddrSpace.h:39
llvm::SPIRVAS::PushConstant
@ PushConstant
Definition
SPIRVAddrSpace.h:42
llvm::SPIRVAS::HostOnlyINTEL
@ HostOnlyINTEL
Definition
SPIRVAddrSpace.h:35
llvm::SPIRVAS::Output
@ Output
Definition
SPIRVAddrSpace.h:37
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
DefaultTargetInfo.h:21
Generated on
for LLVM by
1.14.0