clang 22.0.0git
ParseHLSLRootSignature.cpp File Reference
#include "clang/Parse/ParseHLSLRootSignature.h"
#include "clang/AST/ASTConsumer.h"
#include "clang/Lex/LiteralSupport.h"
#include "clang/Parse/Parser.h"
#include "clang/Sema/Sema.h"
#include "clang/Lex/HLSLRootSignatureTokenKinds.def"

Go to the source code of this file.

Namespaces

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

Macros

#define ROOT_FLAG_ENUM(NAME, LIT)
#define ROOT_FLAG_ENUM(NAME, LIT)
#define SHADER_VISIBILITY_ENUM(NAME, LIT)
#define SHADER_VISIBILITY_ENUM(NAME, LIT)
#define FILTER_ENUM(NAME, LIT)
#define FILTER_ENUM(NAME, LIT)
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT)
#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT)
#define COMPARISON_FUNC_ENUM(NAME, LIT)
#define COMPARISON_FUNC_ENUM(NAME, LIT)
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT)
#define STATIC_BORDER_COLOR_ENUM(NAME, LIT)
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT)
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT)
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON)
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON)

Functions

template<typename FlagType>
static FlagType clang::hlsl::maybeOrFlag (std::optional< FlagType > Flags, FlagType Flag)
IdentifierInfoclang::hlsl::ParseHLSLRootSignature (Sema &Actions, llvm::dxbc::RootSignatureVersion Version, StringLiteral *Signature)
void clang::hlsl::HandleRootSignatureTarget (Sema &S, StringRef EntryRootSig)

Variables

static const TokenKind clang::hlsl::RootElementKeywords []

Macro Definition Documentation

◆ COMPARISON_FUNC_ENUM [1/2]

#define COMPARISON_FUNC_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ COMPARISON_FUNC_ENUM [2/2]

#define COMPARISON_FUNC_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::ComparisonFunc::NAME; \
break;

◆ DESCRIPTOR_RANGE_FLAG_ENUM [1/2]

#define DESCRIPTOR_RANGE_FLAG_ENUM ( NAME,
LIT,
ON )
Value:
TokenKind::en_##NAME,

◆ DESCRIPTOR_RANGE_FLAG_ENUM [2/2]

#define DESCRIPTOR_RANGE_FLAG_ENUM ( NAME,
LIT,
ON )
Value:
case TokenKind::en_##NAME: \
Flags = maybeOrFlag<llvm::dxbc::DescriptorRangeFlags>( \
Flags, llvm::dxbc::DescriptorRangeFlags::NAME); \
break;

◆ FILTER_ENUM [1/2]

#define FILTER_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ FILTER_ENUM [2/2]

#define FILTER_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::SamplerFilter::NAME; \
break;

◆ ROOT_DESCRIPTOR_FLAG_ENUM [1/2]

#define ROOT_DESCRIPTOR_FLAG_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ ROOT_DESCRIPTOR_FLAG_ENUM [2/2]

#define ROOT_DESCRIPTOR_FLAG_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
Flags = maybeOrFlag<llvm::dxbc::RootDescriptorFlags>( \
Flags, llvm::dxbc::RootDescriptorFlags::NAME); \
break;

◆ ROOT_FLAG_ENUM [1/2]

#define ROOT_FLAG_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ ROOT_FLAG_ENUM [2/2]

#define ROOT_FLAG_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
Flags = maybeOrFlag<llvm::dxbc::RootFlags>(Flags, \
llvm::dxbc::RootFlags::NAME); \
break;

◆ SHADER_VISIBILITY_ENUM [1/2]

#define SHADER_VISIBILITY_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ SHADER_VISIBILITY_ENUM [2/2]

#define SHADER_VISIBILITY_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::ShaderVisibility::NAME; \
break;

◆ STATIC_BORDER_COLOR_ENUM [1/2]

#define STATIC_BORDER_COLOR_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ STATIC_BORDER_COLOR_ENUM [2/2]

#define STATIC_BORDER_COLOR_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::StaticBorderColor::NAME; \
break;

◆ TEXTURE_ADDRESS_MODE_ENUM [1/2]

#define TEXTURE_ADDRESS_MODE_ENUM ( NAME,
LIT )
Value:
TokenKind::en_##NAME,

◆ TEXTURE_ADDRESS_MODE_ENUM [2/2]

#define TEXTURE_ADDRESS_MODE_ENUM ( NAME,
LIT )
Value:
case TokenKind::en_##NAME: \
return llvm::dxbc::TextureAddressMode::NAME; \
break;