clang 17.0.0git
Public Types | Public Attributes | List of all members
clang::TargetOptions Class Reference

Options for controlling the target. More...

#include "clang/Basic/TargetOptions.h"

Public Types

enum  CodeObjectVersionKind {
  COV_None , COV_2 = 200 , COV_3 = 300 , COV_4 = 400 ,
  COV_5 = 500
}
 Enumeration value for AMDGPU code object version, which is the code object version times 100. More...
 

Public Attributes

std::string Triple
 The name of the target triple to compile for.
 
std::string HostTriple
 When compiling for the device side, contains the triple used to compile for the host.
 
std::string CPU
 If given, the name of the target CPU to generate code for.
 
std::string TuneCPU
 If given, the name of the target CPU to tune code for.
 
std::string FPMath
 If given, the unit to use for floating point math.
 
std::string ABI
 If given, the name of the target ABI to use.
 
llvm::EABI EABIVersion = llvm::EABI::Default
 The EABI version to use.
 
std::string LinkerVersion
 If given, the version string of the linker in use.
 
std::vector< std::string > FeaturesAsWritten
 The list of target specific features to enable or disable, as written on the command line.
 
std::vector< std::string > Features
 The list of target specific features to enable or disable – this should be a list of strings starting with by '+' or '-'.
 
llvm::StringMap< boolFeatureMap
 The map of which features have been enabled disabled based on the command line.
 
llvm::StringMap< boolOpenCLFeaturesMap
 Supported OpenCL extensions and optional core features.
 
std::vector< std::string > OpenCLExtensionsAsWritten
 The list of OpenCL extensions to enable or disable, as written on the command line.
 
bool ForceEnableInt128 = false
 If given, enables support for __int128_t and __uint128_t types.
 
bool NVPTXUseShortPointers = false
 If enabled, use 32-bit pointers for accessing const/local/shared address space.
 
bool AllowAMDGPUUnsafeFPAtomics = false
 If enabled, allow AMDGPU unsafe floating point atomics.
 
CodeObjectVersionKind CodeObjectVersion = CodeObjectVersionKind::COV_None
 Code object version for AMDGPU.
 
std::string CodeModel
 
llvm::VersionTuple SDKVersion
 The version of the SDK which was used during the compilation.
 
std::string DarwinTargetVariantTriple
 The name of the darwin target- ariant triple to compile for.
 
llvm::VersionTuple DarwinTargetVariantSDKVersion
 The version of the darwin target variant SDK which was used during the compilation.
 
std::string DxilValidatorVersion
 The validator version for dxil.
 
std::string HLSLEntry
 The entry point name for HLSL shader being compiled as specified by -E.
 

Detailed Description

Options for controlling the target.

Definition at line 26 of file TargetOptions.h.

Member Enumeration Documentation

◆ CodeObjectVersionKind

Enumeration value for AMDGPU code object version, which is the code object version times 100.

Enumerator
COV_None 
COV_2 
COV_3 
COV_4 
COV_5 

Definition at line 83 of file TargetOptions.h.

Member Data Documentation

◆ ABI

std::string clang::TargetOptions::ABI

If given, the name of the target ABI to use.

Definition at line 45 of file TargetOptions.h.

Referenced by initTargetOptions().

◆ AllowAMDGPUUnsafeFPAtomics

bool clang::TargetOptions::AllowAMDGPUUnsafeFPAtomics = false

If enabled, allow AMDGPU unsafe floating point atomics.

Definition at line 79 of file TargetOptions.h.

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

◆ CodeModel

std::string clang::TargetOptions::CodeModel

◆ CodeObjectVersion

CodeObjectVersionKind clang::TargetOptions::CodeObjectVersion = CodeObjectVersionKind::COV_None

Code object version for AMDGPU.

Definition at line 91 of file TargetOptions.h.

◆ CPU

std::string clang::TargetOptions::CPU

If given, the name of the target CPU to generate code for.

Definition at line 36 of file TargetOptions.h.

Referenced by clang::CompilerInstance::ExecuteAction(), clang::ASTContext::getFunctionFeatureMap(), and runThinLTOBackend().

◆ DarwinTargetVariantSDKVersion

llvm::VersionTuple clang::TargetOptions::DarwinTargetVariantSDKVersion

The version of the darwin target variant SDK which was used during the compilation.

Definition at line 112 of file TargetOptions.h.

Referenced by GenerateTargetArgs(), clang::TargetInfo::getDarwinTargetVariantSDKVersion(), and ParseTargetArgs().

◆ DarwinTargetVariantTriple

std::string clang::TargetOptions::DarwinTargetVariantTriple

The name of the darwin target- ariant triple to compile for.

Definition at line 108 of file TargetOptions.h.

◆ DxilValidatorVersion

std::string clang::TargetOptions::DxilValidatorVersion

The validator version for dxil.

Definition at line 115 of file TargetOptions.h.

◆ EABIVersion

llvm::EABI clang::TargetOptions::EABIVersion = llvm::EABI::Default

◆ FeatureMap

llvm::StringMap<bool> clang::TargetOptions::FeatureMap

The map of which features have been enabled disabled based on the command line.

Definition at line 62 of file TargetOptions.h.

Referenced by getCudaArch(), clang::ASTContext::getFunctionFeatureMap(), clang::ASTContext::getOpenMPDefaultSimdAlign(), and clang::targets::M68kTargetInfo::getTargetDefines().

◆ Features

std::vector<std::string> clang::TargetOptions::Features

The list of target specific features to enable or disable – this should be a list of strings starting with by '+' or '-'.

Definition at line 58 of file TargetOptions.h.

Referenced by clang::ASTContext::getFunctionFeatureMap(), clang::IncrementalExecutor::IncrementalExecutor(), and runThinLTOBackend().

◆ FeaturesAsWritten

std::vector<std::string> clang::TargetOptions::FeaturesAsWritten

The list of target specific features to enable or disable, as written on the command line.

Definition at line 54 of file TargetOptions.h.

Referenced by clang::targets::ARMTargetInfo::ARMTargetInfo(), checkTargetOptions(), clang::ASTContext::getFunctionFeatureMap(), and clang::targets::NVPTXTargetInfo::NVPTXTargetInfo().

◆ ForceEnableInt128

bool clang::TargetOptions::ForceEnableInt128 = false

If given, enables support for __int128_t and __uint128_t types.

Definition at line 72 of file TargetOptions.h.

Referenced by clang::TargetInfo::hasInt128Type().

◆ FPMath

std::string clang::TargetOptions::FPMath

If given, the unit to use for floating point math.

Definition at line 42 of file TargetOptions.h.

◆ HLSLEntry

std::string clang::TargetOptions::HLSLEntry

The entry point name for HLSL shader being compiled as specified by -E.

Definition at line 118 of file TargetOptions.h.

Referenced by clang::Sema::ActOnFunctionDeclarator().

◆ HostTriple

std::string clang::TargetOptions::HostTriple

When compiling for the device side, contains the triple used to compile for the host.

Definition at line 33 of file TargetOptions.h.

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

◆ LinkerVersion

std::string clang::TargetOptions::LinkerVersion

If given, the version string of the linker in use.

Definition at line 51 of file TargetOptions.h.

◆ NVPTXUseShortPointers

bool clang::TargetOptions::NVPTXUseShortPointers = false

If enabled, use 32-bit pointers for accessing const/local/shared address space.

Definition at line 76 of file TargetOptions.h.

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

◆ OpenCLExtensionsAsWritten

std::vector<std::string> clang::TargetOptions::OpenCLExtensionsAsWritten

The list of OpenCL extensions to enable or disable, as written on the command line.

Definition at line 69 of file TargetOptions.h.

◆ OpenCLFeaturesMap

llvm::StringMap<bool> clang::TargetOptions::OpenCLFeaturesMap

Supported OpenCL extensions and optional core features.

Definition at line 65 of file TargetOptions.h.

Referenced by clang::TargetInfo::getSupportedOpenCLOpts(), and clang::TargetInfo::setCommandLineOpenCLOpts().

◆ SDKVersion

llvm::VersionTuple clang::TargetOptions::SDKVersion

The version of the SDK which was used during the compilation.

The option is used for two different purposes:

  • on darwin the version is propagated to LLVM where it's used to support SDK Version metadata (See D55673).
  • CUDA compilation uses it to control parts of CUDA compilation in clang that depend on specific version of the CUDA SDK.

Definition at line 105 of file TargetOptions.h.

Referenced by GenerateTargetArgs(), clang::TargetInfo::getSDKVersion(), and ParseTargetArgs().

◆ Triple

std::string clang::TargetOptions::Triple

The name of the target triple to compile for.

Definition at line 29 of file TargetOptions.h.

Referenced by clang::CodeGenAction::ExecuteAction(), FixupInvocation(), and HasARCRuntime().

◆ TuneCPU

std::string clang::TargetOptions::TuneCPU

If given, the name of the target CPU to tune code for.

Definition at line 39 of file TargetOptions.h.


The documentation for this class was generated from the following file: