clang 22.0.0git
clang::SemaRISCV Class Reference

#include "clang/Sema/SemaRISCV.h"

Inheritance diagram for clang::SemaRISCV:
[legend]

Public Member Functions

 SemaRISCV (Sema &S)
bool CheckLMUL (CallExpr *TheCall, unsigned ArgNum)
bool CheckBuiltinFunctionCall (const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall)
void checkRVVTypeSupport (QualType Ty, SourceLocation Loc, Decl *D, const llvm::StringMap< bool > &FeatureMap)
bool isValidRVVBitcast (QualType srcType, QualType destType)
 Are the two types RVV-bitcast-compatible types?
void handleInterruptAttr (Decl *D, const ParsedAttr &AL)
bool isAliasValid (unsigned BuiltinID, llvm::StringRef AliasName)
bool isValidFMVExtension (StringRef Ext)
bool checkTargetVersionAttr (const StringRef Param, const SourceLocation Loc)
bool checkTargetClonesAttr (SmallVectorImpl< StringRef > &Params, SmallVectorImpl< SourceLocation > &Locs, SmallVectorImpl< SmallString< 64 > > &NewParams)
Public Member Functions inherited from clang::SemaBase
 SemaBase (Sema &S)
ASTContextgetASTContext () const
DiagnosticsEnginegetDiagnostics () const
const LangOptionsgetLangOpts () const
DeclContextgetCurContext () const
SemaDiagnosticBuilder Diag (SourceLocation Loc, unsigned DiagID, bool DeferHint=false)
 Emit a diagnostic.
SemaDiagnosticBuilder Diag (SourceLocation Loc, const PartialDiagnostic &PD, bool DeferHint=false)
 Emit a partial diagnostic.
SemaDiagnosticBuilder DiagCompat (SourceLocation Loc, unsigned CompatDiagId, bool DeferHint=false)
 Emit a compatibility diagnostic.
PartialDiagnostic PDiag (unsigned DiagID=0)
 Build a partial diagnostic.

Public Attributes

bool DeclareRVVBuiltins = false
 Indicate RISC-V vector builtin functions enabled or not.
bool DeclareSiFiveVectorBuiltins = false
 Indicate RISC-V SiFive vector builtin functions enabled or not.
bool DeclareAndesVectorBuiltins = false
 Indicate RISC-V Andes vector builtin functions enabled or not.
std::unique_ptr< sema::RISCVIntrinsicManagerIntrinsicManager
Public Attributes inherited from clang::SemaBase
SemaSemaRef

Detailed Description

Definition at line 32 of file SemaRISCV.h.

Constructor & Destructor Documentation

◆ SemaRISCV()

clang::SemaRISCV::SemaRISCV ( Sema & S)

Definition at line 1776 of file SemaRISCV.cpp.

References clang::SemaBase::SemaBase().

Member Function Documentation

◆ CheckBuiltinFunctionCall()

◆ CheckLMUL()

◆ checkRVVTypeSupport()

◆ checkTargetClonesAttr()

bool clang::SemaRISCV::checkTargetClonesAttr ( SmallVectorImpl< StringRef > & Params,
SmallVectorImpl< SourceLocation > & Locs,
SmallVectorImpl< SmallString< 64 > > & NewParams )

◆ checkTargetVersionAttr()

bool clang::SemaRISCV::checkTargetVersionAttr ( const StringRef Param,
const SourceLocation Loc )

◆ handleInterruptAttr()

◆ isAliasValid()

bool clang::SemaRISCV::isAliasValid ( unsigned BuiltinID,
llvm::StringRef AliasName )

Definition at line 1651 of file SemaRISCV.cpp.

References clang::RISCV::FirstRVVBuiltin, and clang::RISCV::LastRVVBuiltin.

Referenced by handleBuiltinAliasAttr().

◆ isValidFMVExtension()

bool clang::SemaRISCV::isValidFMVExtension ( StringRef Ext)

Definition at line 1656 of file SemaRISCV.cpp.

◆ isValidRVVBitcast()

bool clang::SemaRISCV::isValidRVVBitcast ( QualType srcTy,
QualType destTy )

Are the two types RVV-bitcast-compatible types?

I.e. is bitcasting from the first RVV type (e.g. an RVV scalable type) to the second type (e.g. an RVV VLS type) allowed?

This will also return false if the two given types do not make sense from the perspective of RVV bitcasts.

Definition at line 1489 of file SemaRISCV.cpp.

References clang::VectorType::getVectorKind(), clang::Type::isRVVSizelessBuiltinType(), clang::Type::isVectorType(), and clang::RVVFixedLengthData.

Member Data Documentation

◆ DeclareAndesVectorBuiltins

bool clang::SemaRISCV::DeclareAndesVectorBuiltins = false

Indicate RISC-V Andes vector builtin functions enabled or not.

Definition at line 55 of file SemaRISCV.h.

Referenced by checkRVVTypeSupport().

◆ DeclareRVVBuiltins

bool clang::SemaRISCV::DeclareRVVBuiltins = false

Indicate RISC-V vector builtin functions enabled or not.

Definition at line 49 of file SemaRISCV.h.

◆ DeclareSiFiveVectorBuiltins

bool clang::SemaRISCV::DeclareSiFiveVectorBuiltins = false

Indicate RISC-V SiFive vector builtin functions enabled or not.

Definition at line 52 of file SemaRISCV.h.

◆ IntrinsicManager

std::unique_ptr<sema::RISCVIntrinsicManager> clang::SemaRISCV::IntrinsicManager

Definition at line 57 of file SemaRISCV.h.

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


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