clang 20.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 class  AMDGPUPrintfKind { Hostcall = 0 , Buffered = 1 }
 Enumeration values for AMDGPU printf lowering scheme. 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.
 
llvm::CodeObjectVersionKind CodeObjectVersion
 Code object version for AMDGPU.
 
AMDGPUPrintfKind AMDGPUPrintfKindVal = AMDGPUPrintfKind::Hostcall
 AMDGPU Printf lowering scheme.
 
std::string CodeModel
 
uint64_t LargeDataThreshold
 
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

◆ AMDGPUPrintfKind

Enumeration values for AMDGPU printf lowering scheme.

Enumerator
Hostcall 

printf lowering scheme involving hostcalls, currently used by HIP programs by default

Buffered 

printf lowering scheme involving implicit printf buffers,

Definition at line 86 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().

◆ AMDGPUPrintfKindVal

AMDGPUPrintfKind clang::TargetOptions::AMDGPUPrintfKindVal = AMDGPUPrintfKind::Hostcall

AMDGPU Printf lowering scheme.

Definition at line 96 of file TargetOptions.h.

◆ CodeModel

std::string clang::TargetOptions::CodeModel

◆ CodeObjectVersion

llvm::CodeObjectVersionKind clang::TargetOptions::CodeObjectVersion
Initial value:
=
llvm::CodeObjectVersionKind::COV_None

Code object version for AMDGPU.

Definition at line 82 of file TargetOptions.h.

◆ CPU

std::string clang::TargetOptions::CPU

◆ DarwinTargetVariantSDKVersion

llvm::VersionTuple clang::TargetOptions::DarwinTargetVariantSDKVersion

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

Definition at line 121 of file TargetOptions.h.

Referenced by GenerateTargetArgs(), and ParseTargetArgs().

◆ DarwinTargetVariantTriple

std::string clang::TargetOptions::DarwinTargetVariantTriple

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

Definition at line 117 of file TargetOptions.h.

◆ DxilValidatorVersion

std::string clang::TargetOptions::DxilValidatorVersion

The validator version for dxil.

Definition at line 124 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 getOffloadArch(), 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::CodeGenAction::ExecuteAction(), clang::BackendConsumer::HandleTranslationUnit(), overrideFunctionFeaturesWithTargetFeatures(), clang::CodeGen::CodeGenModule::Release(), 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::targets::NVPTXTargetInfo::NVPTXTargetInfo(), and clang::targets::AArch64TargetInfo::parseTargetAttr().

◆ 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.

◆ 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 127 of file TargetOptions.h.

Referenced by clang::SemaHLSL::ActOnTopLevelFunction().

◆ 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().

◆ LargeDataThreshold

uint64_t clang::TargetOptions::LargeDataThreshold

Definition at line 106 of file TargetOptions.h.

Referenced by FixupInvocation().

◆ 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.

◆ 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 114 of file TargetOptions.h.

Referenced by GenerateTargetArgs(), 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::Interpreter::CreateExecutor(), 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.

Referenced by clang::targets::LoongArchTargetInfo::getTargetDefines(), and clang::CodeGen::mergeDefaultFunctionDefinitionAttributes().


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