clang 22.0.0git
clang::targets Namespace Reference

Namespaces

namespace  X86
namespace  X86_64

Classes

class  AArch64beTargetInfo
class  AArch64leTargetInfo
class  AArch64TargetInfo
class  AIXPPC32TargetInfo
class  AIXPPC64TargetInfo
class  AIXTargetInfo
class  AMDGPUTargetInfo
class  AndroidX86_32TargetInfo
class  AndroidX86_64TargetInfo
class  AppleMachOAArch64TargetInfo
class  AppleMachOARMTargetInfo
class  AppleMachOI386TargetInfo
class  AppleMachOTargetInfo
class  ARCTargetInfo
class  ARMbeTargetInfo
class  ARMleTargetInfo
class  ARMTargetInfo
class  AVRTargetInfo
class  BaseSPIRTargetInfo
class  BaseSPIRVTargetInfo
class  BPFTargetInfo
class  CSKYTargetInfo
class  CygwinARMTargetInfo
class  CygwinX86_32TargetInfo
class  CygwinX86_64TargetInfo
class  DarwinAArch64TargetInfo
class  DarwinARMTargetInfo
class  DarwinI386TargetInfo
class  DarwinTargetInfo
class  DarwinX86_64TargetInfo
class  DirectXTargetInfo
class  DragonFlyBSDTargetInfo
class  EmscriptenTargetInfo
class  FreeBSDTargetInfo
class  FuchsiaTargetInfo
class  HaikuTargetInfo
class  HaikuX86_32TargetInfo
class  HexagonTargetInfo
class  HurdTargetInfo
class  ItaniumWindowsARMleTargetInfo
class  KFreeBSDTargetInfo
class  LanaiTargetInfo
class  LinuxTargetInfo
class  LoongArch32TargetInfo
class  LoongArch64TargetInfo
class  LoongArchTargetInfo
class  M68kTargetInfo
class  ManagarmTargetInfo
struct  MCUInfo
 Information about a specific microcontroller. More...
class  MCUX86_32TargetInfo
class  MicrosoftARM64TargetInfo
class  MicrosoftARMleTargetInfo
class  MicrosoftMipsTargetInfo
class  MicrosoftX86_32TargetInfo
class  MicrosoftX86_64TargetInfo
class  MinGWARM64TargetInfo
class  MinGWARMTargetInfo
class  MinGWMipsTargetInfo
class  MinGWX86_32TargetInfo
class  MinGWX86_64TargetInfo
class  MipsTargetInfo
class  MSP430TargetInfo
class  NetBSDI386TargetInfo
class  NetBSDTargetInfo
class  NVPTXTargetInfo
class  OHOSTargetInfo
class  OHOSX86_32TargetInfo
class  OHOSX86_64TargetInfo
class  OpenBSDI386TargetInfo
class  OpenBSDTargetInfo
class  OpenBSDX86_64TargetInfo
class  OSTargetInfo
class  PPC32TargetInfo
class  PPC64TargetInfo
class  PPCTargetInfo
class  PS3PPUTargetInfo
class  PS4OSTargetInfo
class  PS5OSTargetInfo
class  PSOSTargetInfo
class  RISCV32TargetInfo
class  RISCV64TargetInfo
class  RISCVTargetInfo
class  RTEMSTargetInfo
class  RTEMSX86_32TargetInfo
class  SolarisTargetInfo
class  SparcTargetInfo
class  SparcV8elTargetInfo
class  SparcV8TargetInfo
class  SparcV9TargetInfo
class  SPIR32TargetInfo
class  SPIR64TargetInfo
class  SPIRTargetInfo
class  SPIRV32TargetInfo
class  SPIRV64AMDGCNTargetInfo
class  SPIRV64IntelTargetInfo
class  SPIRV64TargetInfo
class  SPIRVTargetInfo
class  SystemZTargetInfo
class  TCELETargetInfo
class  TCETargetInfo
class  UEFITargetInfo
class  UEFIX86_64TargetInfo
class  VETargetInfo
class  WASITargetInfo
class  WebAssembly32TargetInfo
class  WebAssembly64TargetInfo
class  WebAssemblyOSTargetInfo
class  WebAssemblyTargetInfo
class  WindowsARM64TargetInfo
class  WindowsARMTargetInfo
class  WindowsMipsTargetInfo
class  WindowsTargetInfo
class  WindowsX86_32TargetInfo
class  WindowsX86_64TargetInfo
class  X86_32TargetInfo
class  X86_64TargetInfo
class  X86TargetInfo
class  XCoreTargetInfo
class  XtensaTargetInfo
class  ZOSTargetInfo

Enumerations

enum  AArch64AddrSpace { ptr32_sptr = 270 , ptr32_uptr = 271 , ptr64 = 272 }

Functions

std::unique_ptr< clang::TargetInfoAllocateTarget (const llvm::Triple &Triple, const clang::TargetOptions &Opts)
LLVM_LIBRARY_VISIBILITY void DefineStd (clang::MacroBuilder &Builder, llvm::StringRef MacroName, const clang::LangOptions &Opts)
 Define a macro name and standard variants.
LLVM_LIBRARY_VISIBILITY void defineCPUMacros (clang::MacroBuilder &Builder, llvm::StringRef CPUName, bool Tuning=true)
LLVM_LIBRARY_VISIBILITY void addCygMingDefines (const clang::LangOptions &Opts, clang::MacroBuilder &Builder)
void DefineStd (MacroBuilder &Builder, StringRef MacroName, const LangOptions &Opts)
 DefineStd - Define a macro name and standard variants.
void defineCPUMacros (MacroBuilder &Builder, StringRef CPUName, bool Tuning)
void getAppleMachOAArch64Defines (MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple)
void getAppleMachODefines (MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple)
void getDarwinDefines (MacroBuilder &Builder, const LangOptions &Opts, const llvm::Triple &Triple, StringRef &PlatformName, VersionTuple &PlatformMinVersion)
static void addMinGWDefines (const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder)
static void addVisualCDefines (const LangOptions &Opts, MacroBuilder &Builder)
void addWindowsDefines (const llvm::Triple &Triple, const LangOptions &Opts, MacroBuilder &Builder)

Variables

static const unsigned ARM64AddrSpaceMap []
static const char *const DataLayoutStringR600
static const char *const DataLayoutStringAMDGCN
static MCUInfo AVRMcus []
static const unsigned DirectXAddrSpaceMap []
static const unsigned NVPTXAddrSpaceMap []
static const int NVPTXDWARFAddrSpaceMap []
 The DWARF address class.
static const unsigned SPIRDefIsPrivMap []
static const unsigned SPIRDefIsGenMap []
static const unsigned ZOSAddressMap []
static const unsigned TCEOpenCLAddrSpaceMap []
static const unsigned WebAssemblyAddrSpaceMap []
static constexpr int NumX86Builtins
static constexpr int NumX86_64Builtins
static constexpr int NumBuiltins = X86::LastTSBuiltin - Builtin::FirstTSBuiltin
static const char *const GCCRegNames []
const TargetInfo::AddlRegName AddlRegNames []
static const unsigned X86AddrSpaceMap []

Enumeration Type Documentation

◆ AArch64AddrSpace

Enumerator
ptr32_sptr 
ptr32_uptr 
ptr64 

Definition at line 24 of file AArch64.h.

Function Documentation

◆ addCygMingDefines()

void clang::targets::addCygMingDefines ( const clang::LangOptions & Opts,
clang::MacroBuilder & Builder )

◆ addMinGWDefines()

void clang::targets::addMinGWDefines ( const llvm::Triple & Triple,
const LangOptions & Opts,
MacroBuilder & Builder )
static

Definition at line 136 of file OSTargets.cpp.

References addCygMingDefines(), and DefineStd().

Referenced by addWindowsDefines().

◆ addVisualCDefines()

◆ addWindowsDefines()

void clang::targets::addWindowsDefines ( const llvm::Triple & Triple,
const LangOptions & Opts,
MacroBuilder & Builder )

◆ AllocateTarget()

std::unique_ptr< TargetInfo > clang::targets::AllocateTarget ( const llvm::Triple & Triple,
const clang::TargetOptions & Opts )

◆ defineCPUMacros() [1/2]

◆ defineCPUMacros() [2/2]

void clang::targets::defineCPUMacros ( MacroBuilder & Builder,
StringRef CPUName,
bool Tuning )

Definition at line 75 of file Targets.cpp.

◆ DefineStd() [1/2]

LLVM_LIBRARY_VISIBILITY void clang::targets::DefineStd ( clang::MacroBuilder & Builder,
llvm::StringRef MacroName,
const clang::LangOptions & Opts )

Define a macro name and standard variants.

For example if MacroName is "unix", then this will define "__unix", "__unix__", and "unix" when in GNU mode.

Referenced by addMinGWDefines(), clang::targets::AIXTargetInfo< Target >::getOSDefines(), clang::targets::DragonFlyBSDTargetInfo< Target >::getOSDefines(), clang::targets::FreeBSDTargetInfo< Target >::getOSDefines(), clang::targets::HaikuTargetInfo< Target >::getOSDefines(), clang::targets::HurdTargetInfo< Target >::getOSDefines(), clang::targets::KFreeBSDTargetInfo< Target >::getOSDefines(), clang::targets::LinuxTargetInfo< Target >::getOSDefines(), clang::targets::ManagarmTargetInfo< Target >::getOSDefines(), clang::targets::OHOSTargetInfo< Target >::getOSDefines(), clang::targets::OpenBSDTargetInfo< Target >::getOSDefines(), clang::targets::PSOSTargetInfo< Target >::getOSDefines(), clang::targets::SolarisTargetInfo< Target >::getOSDefines(), clang::targets::BaseSPIRVTargetInfo::getTargetDefines(), clang::targets::CygwinARMTargetInfo::getTargetDefines(), clang::targets::CygwinX86_32TargetInfo::getTargetDefines(), clang::targets::CygwinX86_64TargetInfo::getTargetDefines(), clang::targets::DirectXTargetInfo::getTargetDefines(), clang::targets::M68kTargetInfo::getTargetDefines(), clang::targets::MipsTargetInfo::getTargetDefines(), clang::targets::SparcTargetInfo::getTargetDefines(), clang::targets::SPIR32TargetInfo::getTargetDefines(), clang::targets::SPIR64TargetInfo::getTargetDefines(), clang::targets::SPIRTargetInfo::getTargetDefines(), clang::targets::SPIRV32TargetInfo::getTargetDefines(), clang::targets::SPIRV64AMDGCNTargetInfo::getTargetDefines(), clang::targets::SPIRV64TargetInfo::getTargetDefines(), clang::targets::TCELETargetInfo::getTargetDefines(), clang::targets::TCETargetInfo::getTargetDefines(), and clang::targets::X86TargetInfo::getTargetDefines().

◆ DefineStd() [2/2]

void clang::targets::DefineStd ( MacroBuilder & Builder,
StringRef MacroName,
const LangOptions & Opts )

DefineStd - Define a macro name and standard variants.

For example if MacroName is "unix", then this will define "__unix", "__unix__", and "unix" when in GNU mode.

Definition at line 59 of file Targets.cpp.

◆ getAppleMachOAArch64Defines()

void clang::targets::getAppleMachOAArch64Defines ( MacroBuilder & Builder,
const LangOptions & Opts,
const llvm::Triple & Triple )

◆ getAppleMachODefines()

void clang::targets::getAppleMachODefines ( MacroBuilder & Builder,
const LangOptions & Opts,
const llvm::Triple & Triple )

◆ getDarwinDefines()

void clang::targets::getDarwinDefines ( MacroBuilder & Builder,
const LangOptions & Opts,
const llvm::Triple & Triple,
StringRef & PlatformName,
VersionTuple & PlatformMinVersion )

Variable Documentation

◆ AddlRegNames

const TargetInfo::AddlRegName clang::targets::AddlRegNames[]

◆ ARM64AddrSpaceMap

const unsigned clang::targets::ARM64AddrSpaceMap[]
static
Initial value:
= {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
static_cast<unsigned>(AArch64AddrSpace::ptr32_sptr),
static_cast<unsigned>(AArch64AddrSpace::ptr32_uptr),
static_cast<unsigned>(AArch64AddrSpace::ptr64),
0,
0,
0,
0,
0,
20,
}

Definition at line 26 of file AArch64.h.

Referenced by clang::targets::AArch64TargetInfo::AArch64TargetInfo().

◆ AVRMcus

◆ DataLayoutStringAMDGCN

const char* const clang::targets::DataLayoutStringAMDGCN
static
Initial value:
=
"e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32"
"-p7:160:256:256:32-p8:128:128:128:48-p9:192:256:256:32-i64:64-"
"v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-"
"v2048:2048-n32:64-S32-A5-G1-ni:7:8:9"

Definition at line 33 of file AMDGPU.cpp.

Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo().

◆ DataLayoutStringR600

const char* const clang::targets::DataLayoutStringR600
static
Initial value:
=
"e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128"
"-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1"

Definition at line 29 of file AMDGPU.cpp.

Referenced by clang::targets::AMDGPUTargetInfo::AMDGPUTargetInfo().

◆ DirectXAddrSpaceMap

const unsigned clang::targets::DirectXAddrSpaceMap[]
static
Initial value:
= {
0,
1,
3,
2,
0,
4,
5,
6,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
2,
0,
0,
0,
20,
}

Definition at line 23 of file DirectX.h.

Referenced by clang::targets::DirectXTargetInfo::DirectXTargetInfo().

◆ GCCRegNames

const char* const clang::targets::GCCRegNames[]
static
Initial value:
= {
"ax", "dx", "cx", "bx", "si", "di", "bp", "sp",
"st", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)",
"argp", "flags", "fpcr", "fpsr", "dirflag", "frame", "xmm0", "xmm1",
"xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "mm0", "mm1",
"mm2", "mm3", "mm4", "mm5", "mm6", "mm7", "r8", "r9",
"r10", "r11", "r12", "r13", "r14", "r15", "xmm8", "xmm9",
"xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15", "ymm0", "ymm1",
"ymm2", "ymm3", "ymm4", "ymm5", "ymm6", "ymm7", "ymm8", "ymm9",
"ymm10", "ymm11", "ymm12", "ymm13", "ymm14", "ymm15", "xmm16", "xmm17",
"xmm18", "xmm19", "xmm20", "xmm21", "xmm22", "xmm23", "xmm24", "xmm25",
"xmm26", "xmm27", "xmm28", "xmm29", "xmm30", "xmm31", "ymm16", "ymm17",
"ymm18", "ymm19", "ymm20", "ymm21", "ymm22", "ymm23", "ymm24", "ymm25",
"ymm26", "ymm27", "ymm28", "ymm29", "ymm30", "ymm31", "zmm0", "zmm1",
"zmm2", "zmm3", "zmm4", "zmm5", "zmm6", "zmm7", "zmm8", "zmm9",
"zmm10", "zmm11", "zmm12", "zmm13", "zmm14", "zmm15", "zmm16", "zmm17",
"zmm18", "zmm19", "zmm20", "zmm21", "zmm22", "zmm23", "zmm24", "zmm25",
"zmm26", "zmm27", "zmm28", "zmm29", "zmm30", "zmm31", "k0", "k1",
"k2", "k3", "k4", "k5", "k6", "k7",
"cr0", "cr2", "cr3", "cr4", "cr8",
"dr0", "dr1", "dr2", "dr3", "dr6", "dr7",
"bnd0", "bnd1", "bnd2", "bnd3",
"tmm0", "tmm1", "tmm2", "tmm3", "tmm4", "tmm5", "tmm6", "tmm7",
"r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
"r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
}

Definition at line 73 of file X86.cpp.

Referenced by clang::targets::ARCTargetInfo::getGCCRegNames(), clang::targets::AVRTargetInfo::getGCCRegNames(), clang::targets::CSKYTargetInfo::getGCCRegNames(), clang::targets::LoongArchTargetInfo::getGCCRegNames(), clang::targets::MipsTargetInfo::getGCCRegNames(), clang::targets::RISCVTargetInfo::getGCCRegNames(), clang::targets::VETargetInfo::getGCCRegNames(), clang::targets::X86TargetInfo::getGCCRegNames(), clang::targets::XCoreTargetInfo::getGCCRegNames(), and clang::targets::XtensaTargetInfo::getGCCRegNames().

◆ NumBuiltins

int clang::targets::NumBuiltins = X86::LastTSBuiltin - Builtin::FirstTSBuiltin
staticconstexpr

Definition at line 30 of file X86.cpp.

◆ NumX86_64Builtins

int clang::targets::NumX86_64Builtins
staticconstexpr
Initial value:

Definition at line 28 of file X86.cpp.

◆ NumX86Builtins

int clang::targets::NumX86Builtins
staticconstexpr
Initial value:

Definition at line 26 of file X86.cpp.

◆ NVPTXAddrSpaceMap

const unsigned clang::targets::NVPTXAddrSpaceMap[]
static
Initial value:
= {
0,
1,
3,
4,
0,
0,
1,
1,
1,
4,
3,
1,
1,
1,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
20,
}

Definition at line 27 of file NVPTX.h.

Referenced by clang::targets::NVPTXTargetInfo::NVPTXTargetInfo().

◆ NVPTXDWARFAddrSpaceMap

const int clang::targets::NVPTXDWARFAddrSpaceMap[]
static
Initial value:
= {
-1,
5,
-1,
8,
4,
}

The DWARF address class.

Taken from https://docs.nvidia.com/cuda/archive/10.0/ptx-writers-guide-to-interoperability/index.html#cuda-specific-dwarf

Definition at line 60 of file NVPTX.h.

Referenced by clang::targets::NVPTXTargetInfo::getDWARFAddressSpace().

◆ SPIRDefIsGenMap

const unsigned clang::targets::SPIRDefIsGenMap[]
static

◆ SPIRDefIsPrivMap

const unsigned clang::targets::SPIRDefIsPrivMap[]
static
Initial value:
= {
0,
1,
3,
2,
0,
4,
5,
6,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
3,
12,
10,
11,
7,
20,
}

Definition at line 28 of file SPIR.h.

Referenced by clang::targets::BaseSPIRTargetInfo::BaseSPIRTargetInfo(), and clang::targets::BaseSPIRTargetInfo::setAddressSpaceMap().

◆ TCEOpenCLAddrSpaceMap

const unsigned clang::targets::TCEOpenCLAddrSpaceMap[]
static
Initial value:
= {
0,
3,
4,
5,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
20,
}

Definition at line 32 of file TCE.h.

Referenced by clang::targets::TCETargetInfo::TCETargetInfo().

◆ WebAssemblyAddrSpaceMap

const unsigned clang::targets::WebAssemblyAddrSpaceMap[]
static
Initial value:
= {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
20,
}

Definition at line 24 of file WebAssembly.h.

Referenced by clang::targets::WebAssemblyTargetInfo::WebAssemblyTargetInfo().

◆ X86AddrSpaceMap

const unsigned clang::targets::X86AddrSpaceMap[]
static
Initial value:
= {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
270,
271,
272,
0,
0,
0,
0,
0,
20,
}

Definition at line 28 of file X86.h.

Referenced by clang::targets::X86TargetInfo::X86TargetInfo().

◆ ZOSAddressMap

const unsigned clang::targets::ZOSAddressMap[]
static
Initial value:
= {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0
}

Definition at line 24 of file SystemZ.h.

Referenced by clang::targets::SystemZTargetInfo::SystemZTargetInfo().