clang 20.0.0git
|
#include "clang/Sema/SemaRISCV.h"
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? I.e. | |
void | handleInterruptAttr (Decl *D, const ParsedAttr &AL) |
bool | isAliasValid (unsigned BuiltinID, llvm::StringRef AliasName) |
bool | isValidFMVExtension (StringRef Ext) |
Public Member Functions inherited from clang::SemaBase | |
SemaBase (Sema &S) | |
ASTContext & | getASTContext () const |
DiagnosticsEngine & | getDiagnostics () const |
const LangOptions & | getLangOpts () 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. | |
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. | |
std::unique_ptr< sema::RISCVIntrinsicManager > | IntrinsicManager |
Public Attributes inherited from clang::SemaBase | |
Sema & | SemaRef |
Definition at line 32 of file SemaRISCV.h.
clang::SemaRISCV::SemaRISCV | ( | Sema & | S | ) |
Definition at line 1497 of file SemaRISCV.cpp.
bool clang::SemaRISCV::CheckBuiltinFunctionCall | ( | const TargetInfo & | TI, |
unsigned | BuiltinID, | ||
CallExpr * | TheCall | ||
) |
Definition at line 552 of file SemaRISCV.cpp.
References clang::Sema::BuiltinConstantArgRange(), clang::Type::castAs(), clang::Sema::checkArgCountAtLeast(), clang::Sema::checkArgCountAtMost(), clang::CheckInvalidVLENandLMUL(), CheckLMUL(), clang::Sema::DefaultFunctionArrayLvalueConversion(), clang::SemaBase::Diag(), clang::ASTContext::BuiltinVectorTypeInfo::EC, clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::ActionResult< PtrTy, Compress >::get(), clang::CallExpr::getArg(), clang::Type::getAs(), clang::SemaBase::getASTContext(), clang::DeclRefExpr::getBeginLoc(), clang::CallExpr::getBeginLoc(), clang::ASTContext::getBuiltinVectorTypeInfo(), clang::CallExpr::getCallee(), clang::QualType::getCanonicalType(), clang::Sema::getCurFunctionDecl(), clang::ASTContext::getFunctionFeatureMap(), clang::CallExpr::getNumArgs(), clang::PointerType::getPointeeType(), clang::Stmt::getSourceRange(), clang::Expr::getType(), clang::QualType::getTypePtr(), clang::ASTContext::getTypeSize(), clang::QualType::getUnqualifiedType(), clang::TargetInfo::hasFeature(), clang::Expr::IgnoreParenCasts(), clang::InitializedEntity::InitializeParameter(), clang::Type::isAnyPointerType(), clang::Type::isBlockPointerType(), clang::Type::isFloatingType(), clang::Type::isIntegerType(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Type::isRVVSizelessBuiltinType(), clang::Type::isVectorType(), clang::ASTContext::BuiltinVectorTypeInfo::NumVectors, clang::Sema::PerformCopyInitialization(), clang::SemaBase::SemaRef, clang::CallExpr::setArg(), clang::Expr::setType(), and clang::ASTContext::VoidTy.
Definition at line 502 of file SemaRISCV.cpp.
References clang::Sema::BuiltinConstantArg(), clang::SemaBase::Diag(), clang::CallExpr::getArg(), clang::CallExpr::getBeginLoc(), clang::Stmt::getSourceRange(), clang::Expr::isTypeDependent(), clang::Expr::isValueDependent(), clang::Result, and clang::SemaBase::SemaRef.
Referenced by CheckBuiltinFunctionCall().
void clang::SemaRISCV::checkRVVTypeSupport | ( | QualType | Ty, |
SourceLocation | Loc, | ||
Decl * | D, | ||
const llvm::StringMap< bool > & | FeatureMap | ||
) |
Definition at line 1372 of file SemaRISCV.cpp.
References clang::Type::castAs(), clang::Sema::Context, D, clang::SemaBase::Diag(), clang::ASTContext::BuiltinVectorTypeInfo::EC, clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::ASTContext::getBuiltinVectorTypeInfo(), clang::ASTContext::getTypeSize(), clang::Type::isBFloat16Type(), clang::Type::isFloat16Type(), clang::Type::isIntegerType(), clang::Type::isSpecificBuiltinType(), Loc, and clang::SemaBase::SemaRef.
Referenced by clang::Sema::CheckVariableDeclarationType().
void clang::SemaRISCV::handleInterruptAttr | ( | Decl * | D, |
const ParsedAttr & | AL | ||
) |
Definition at line 1424 of file SemaRISCV.cpp.
References clang::Decl::addAttr(), clang::ParsedAttr::checkAtMostNumArgs(), clang::Sema::checkStringLiteralArgumentAttr(), D, clang::SemaBase::Diag(), clang::ExpectedFunction, clang::SemaBase::getASTContext(), clang::Decl::getAttr(), clang::SourceRange::getBegin(), clang::getFunctionOrMethodNumParams(), clang::getFunctionOrMethodResultType(), clang::Decl::getFunctionType(), clang::AttributeCommonInfo::getLoc(), clang::Decl::getLocation(), clang::ParsedAttr::getNumArgs(), clang::AttributeCommonInfo::getRange(), clang::hasFunctionProto(), clang::AttributeCommonInfo::isRegularKeywordAttribute(), and clang::SemaBase::SemaRef.
Referenced by handleInterruptAttr().
Definition at line 1482 of file SemaRISCV.cpp.
References clang::RISCV::FirstRVVBuiltin, and clang::RISCV::LastRVVBuiltin.
Referenced by handleBuiltinAliasAttr().
bool clang::SemaRISCV::isValidFMVExtension | ( | StringRef | Ext | ) |
Definition at line 1487 of file SemaRISCV.cpp.
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 1409 of file SemaRISCV.cpp.
References clang::VectorType::getVectorKind(), clang::Type::isRVVSizelessBuiltinType(), clang::Type::isVectorType(), and clang::RVVFixedLengthData.
Indicate RISC-V vector builtin functions enabled or not.
Definition at line 49 of file SemaRISCV.h.
Indicate RISC-V SiFive vector builtin functions enabled or not.
Definition at line 52 of file SemaRISCV.h.
std::unique_ptr<sema::RISCVIntrinsicManager> clang::SemaRISCV::IntrinsicManager |
Definition at line 54 of file SemaRISCV.h.
Referenced by clang::Sema::LookupBuiltin().