clang  5.0.0
AddressSpaces.h
Go to the documentation of this file.
1 //===--- AddressSpaces.h - Language-specific address spaces -----*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 ///
10 /// \file
11 /// \brief Provides definitions for the various language-specific address
12 /// spaces.
13 ///
14 //===----------------------------------------------------------------------===//
15 
16 #ifndef LLVM_CLANG_BASIC_ADDRESSSPACES_H
17 #define LLVM_CLANG_BASIC_ADDRESSSPACES_H
18 
19 namespace clang {
20 
21 namespace LangAS {
22 
23 /// \brief Defines the address space values used by the address space qualifier
24 /// of QualType.
25 ///
26 enum ID {
27  // The default value 0 is the value used in QualType for the the situation
28  // where there is no address space qualifier. For most languages, this also
29  // corresponds to the situation where there is no address space qualifier in
30  // the source code, except for OpenCL, where the address space value 0 in
31  // QualType represents private address space in OpenCL source code.
32  Default = 0,
33 
34  // OpenCL specific address spaces.
39 
40  // CUDA specific address spaces.
44 
45  // This denotes the count of language-specific address spaces and also
46  // the offset added to the target-specific address spaces, which are usually
47  // specified by address space attributes __attribute__(address_space(n))).
49 };
50 
51 /// The type of a lookup table which maps from language-specific address spaces
52 /// to target-specific ones.
53 typedef unsigned Map[FirstTargetAddressSpace];
54 }
55 
56 }
57 
58 #endif
ID
Defines the address space values used by the address space qualifier of QualType. ...
Definition: AddressSpaces.h:26
unsigned Map[FirstTargetAddressSpace]
The type of a lookup table which maps from language-specific address spaces to target-specific ones...
Definition: AddressSpaces.h:53