1 //===-- NVPTXBaseInfo.h - Top-level definitions for NVPTX -------*- 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 // This file contains small standalone helper functions and enum definitions for 10 // the NVPTX target useful for the compiler back-end and the MC libraries. 11 // As such, it deliberately does not include references to LLVM core 12 // code gen types, passes, etc.. 13 // 14 //===----------------------------------------------------------------------===// 15 16 #ifndef LLVM_LIB_TARGET_NVPTX_MCTARGETDESC_NVPTXBASEINFO_H 17 #define LLVM_LIB_TARGET_NVPTX_MCTARGETDESC_NVPTXBASEINFO_H 18 19 namespace llvm { 20 21 enum AddressSpace { 22 ADDRESS_SPACE_GENERIC = 0, 23 ADDRESS_SPACE_GLOBAL = 1, 24 ADDRESS_SPACE_SHARED = 3, 25 ADDRESS_SPACE_CONST = 4, 26 ADDRESS_SPACE_LOCAL = 5, 27 28 // NVVM Internal 29 ADDRESS_SPACE_PARAM = 101 30 }; 31 32 namespace NVPTXII { 33 enum { 34 // These must be kept in sync with TSFlags in NVPTXInstrFormats.td 35 IsTexFlag = 0x80, 36 IsSuldMask = 0x300, 37 IsSuldShift = 8, 38 IsSustFlag = 0x400, 39 IsSurfTexQueryFlag = 0x800, 40 IsTexModeUnifiedFlag = 0x1000 41 }; 42 } // namespace NVPTXII 43 44 } // namespace llvm 45 #endif 46