clang 22.0.0git
Builtins.h File Reference

Defines enum values for all the target-independent builtin functions. More...

#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringTable.h"
#include <cstring>
#include "clang/Basic/BuiltinHeaders.def"
#include "clang/Basic/Builtins.inc"
#include "clang/Basic/BuiltinTemplates.inc"

Go to the source code of this file.

Classes

struct  clang::HeaderDesc
struct  clang::Builtin::Info
 The info used to represent each builtin. More...
struct  clang::Builtin::Info::StrOffsets
struct  clang::Builtin::InfosShard
 A shard of a target's builtins string table and info. More...
class  clang::Builtin::Context
 Holds information about both target-independent and target-specific builtins, allowing easy queries by clients. More...

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
namespace  clang::Builtin

Macros

#define HEADER(ID, NAME)
#define GET_BUILTIN_ENUMERATORS
#define CLANG_BUILTIN_DETAIL_STR_TABLE(S)
#define CLANG_BUILTIN_STR_TABLE_START   CLANG_BUILTIN_DETAIL_STR_TABLE("\0")
#define CLANG_BUILTIN_STR_TABLE(ID, TYPE, ATTRS)
#define CLANG_TARGET_BUILTIN_STR_TABLE(ID, TYPE, ATTRS, FEATURE)
#define CLANG_TARGET_HEADER_BUILTIN_STR_TABLE(ID, TYPE, ATTRS, HEADER, LANGS, FEATURE)
#define CLANG_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS)
#define CLANG_TARGET_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS, FEATURE)
#define CLANG_BUILTIN_ENTRY(ID, TYPE, ATTRS)
#define CLANG_LANGBUILTIN_ENTRY(ID, TYPE, ATTRS, LANG)
#define CLANG_LIBBUILTIN_ENTRY(ID, TYPE, ATTRS, HEADER, LANG)
#define CLANG_TARGET_BUILTIN_ENTRY(ID, TYPE, ATTRS, FEATURE)
#define CLANG_TARGET_HEADER_BUILTIN_ENTRY(ID, TYPE, ATTRS, HEADER, LANG, FEATURE)
#define BuiltinTemplate(BTName)

Enumerations

enum  clang::LanguageID : uint16_t {
  clang::GNU_LANG = 0x1 , clang::C_LANG = 0x2 , clang::CXX_LANG = 0x4 , clang::OBJC_LANG = 0x8 ,
  clang::MS_LANG = 0x10 , clang::OMP_LANG = 0x20 , clang::CUDA_LANG = 0x40 , clang::COR_LANG = 0x80 ,
  clang::OCL_GAS = 0x100 , clang::OCL_PIPE = 0x200 , clang::OCL_DSE = 0x400 , clang::ALL_OCL_LANGUAGES = 0x800 ,
  clang::HLSL_LANG = 0x1000 , clang::C23_LANG = 0x2000 , clang::ALL_LANGUAGES = C_LANG | CXX_LANG | OBJC_LANG , clang::ALL_GNU_LANGUAGES = ALL_LANGUAGES | GNU_LANG ,
  clang::ALL_MS_LANGUAGES = ALL_LANGUAGES | MS_LANG
}
enum  clang::Builtin::ID { clang::Builtin::NotBuiltin = 0 , clang::Builtin::FirstTSBuiltin }
enum  clang::BuiltinTemplateKind : int
 Kinds of BuiltinTemplateDecl. More...

Functions

template<size_t N>
static constexpr std::array< Info, N > clang::Builtin::MakeInfos (std::array< Info, N > Infos)
 A constexpr function to construct an infos array from X-macros.
bool clang::Builtin::evaluateRequiredTargetFeatures (llvm::StringRef RequiredFatures, const llvm::StringMap< bool > &TargetFetureMap)
 Returns true if the required target features of a builtin function are enabled.

Detailed Description

Defines enum values for all the target-independent builtin functions.

Definition in file Builtins.h.

Macro Definition Documentation

◆ BuiltinTemplate

#define BuiltinTemplate ( BTName)
Value:
BTK##BTName,

Definition at line 463 of file Builtins.h.

◆ CLANG_BUILTIN_DETAIL_STR_OFFSETS

#define CLANG_BUILTIN_DETAIL_STR_OFFSETS ( ID,
TYPE,
ATTRS )
Value:
Builtin::Info::StrOffsets { \
sizeof(#ID), sizeof(TYPE), sizeof(ATTRS), sizeof("") \
}
#define TYPE(DERIVED, BASE)
Definition ASTFwd.h:26

Definition at line 183 of file Builtins.h.

◆ CLANG_BUILTIN_DETAIL_STR_TABLE

#define CLANG_BUILTIN_DETAIL_STR_TABLE ( S)
Value:
S

Definition at line 151 of file Builtins.h.

◆ CLANG_BUILTIN_ENTRY

#define CLANG_BUILTIN_ENTRY ( ID,
TYPE,
ATTRS )
Value:
Builtin::Info{CLANG_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS), \
HeaderDesc::NO_HEADER, ALL_LANGUAGES},
#define CLANG_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS)
Definition Builtins.h:183

Definition at line 203 of file Builtins.h.

◆ CLANG_BUILTIN_STR_TABLE

#define CLANG_BUILTIN_STR_TABLE ( ID,
TYPE,
ATTRS )
Value:
CLANG_BUILTIN_DETAIL_STR_TABLE(#ID "\0" TYPE "\0" ATTRS "\0" /*FEATURE*/ "\0")
#define CLANG_BUILTIN_DETAIL_STR_TABLE(S)
Definition Builtins.h:151

Definition at line 164 of file Builtins.h.

◆ CLANG_BUILTIN_STR_TABLE_START

#define CLANG_BUILTIN_STR_TABLE_START   CLANG_BUILTIN_DETAIL_STR_TABLE("\0")

Definition at line 158 of file Builtins.h.

◆ CLANG_LANGBUILTIN_ENTRY

#define CLANG_LANGBUILTIN_ENTRY ( ID,
TYPE,
ATTRS,
LANG )
Value:
Builtin::Info{CLANG_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS), \
HeaderDesc::NO_HEADER, LANG},

Definition at line 206 of file Builtins.h.

◆ CLANG_LIBBUILTIN_ENTRY

#define CLANG_LIBBUILTIN_ENTRY ( ID,
TYPE,
ATTRS,
HEADER,
LANG )
Value:
Builtin::Info{CLANG_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS), \
HeaderDesc::HEADER, LANG},

Definition at line 209 of file Builtins.h.

◆ CLANG_TARGET_BUILTIN_DETAIL_STR_OFFSETS

#define CLANG_TARGET_BUILTIN_DETAIL_STR_OFFSETS ( ID,
TYPE,
ATTRS,
FEATURE )
Value:
Builtin::Info::StrOffsets { \
sizeof(#ID), sizeof(TYPE), sizeof(ATTRS), sizeof(FEATURE) \
}
#define FEATURE(Name, Predicate)

Definition at line 190 of file Builtins.h.

◆ CLANG_TARGET_BUILTIN_ENTRY

#define CLANG_TARGET_BUILTIN_ENTRY ( ID,
TYPE,
ATTRS,
FEATURE )
Value:
Builtin::Info{ \
CLANG_TARGET_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS, FEATURE), \
HeaderDesc::NO_HEADER, ALL_LANGUAGES},

Definition at line 212 of file Builtins.h.

◆ CLANG_TARGET_BUILTIN_STR_TABLE

#define CLANG_TARGET_BUILTIN_STR_TABLE ( ID,
TYPE,
ATTRS,
FEATURE )
Value:
CLANG_BUILTIN_DETAIL_STR_TABLE(#ID "\0" TYPE "\0" ATTRS "\0" FEATURE "\0")

Definition at line 170 of file Builtins.h.

◆ CLANG_TARGET_HEADER_BUILTIN_ENTRY

#define CLANG_TARGET_HEADER_BUILTIN_ENTRY ( ID,
TYPE,
ATTRS,
HEADER,
LANG,
FEATURE )
Value:
Builtin::Info{ \
CLANG_TARGET_BUILTIN_DETAIL_STR_OFFSETS(ID, TYPE, ATTRS, FEATURE), \
HeaderDesc::HEADER, LANG},

Definition at line 216 of file Builtins.h.

◆ CLANG_TARGET_HEADER_BUILTIN_STR_TABLE

#define CLANG_TARGET_HEADER_BUILTIN_STR_TABLE ( ID,
TYPE,
ATTRS,
HEADER,
LANGS,
FEATURE )
Value:
CLANG_BUILTIN_DETAIL_STR_TABLE(#ID "\0" TYPE "\0" ATTRS "\0" FEATURE "\0")

Definition at line 177 of file Builtins.h.

◆ GET_BUILTIN_ENUMERATORS

#define GET_BUILTIN_ENUMERATORS

Definition at line 69 of file Builtins.h.

◆ HEADER

#define HEADER ( ID,
NAME )
Value:
ID,

Definition at line 55 of file Builtins.h.