|
clang 23.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? | |
| 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, SmallString< 64 > &NewParam) |
| bool | checkTargetClonesAttr (const SmallVectorImpl< StringRef > &Params, const SmallVectorImpl< SourceLocation > &Locs, SmallVectorImpl< SmallString< 64 > > &NewParams, SourceLocation AttrLoc) |
| Public Member Functions inherited from clang::SemaBase | |
| SemaBase (Sema &S) | |
| ASTContext & | getASTContext () const |
| DiagnosticsEngine & | getDiagnostics () const |
| const LangOptions & | getLangOpts () const |
| DeclContext * | getCurContext () const |
| SemaDiagnosticBuilder | Diag (SourceLocation Loc, unsigned DiagID) |
| Emit a diagnostic. | |
| SemaDiagnosticBuilder | Diag (SourceLocation Loc, const PartialDiagnostic &PD) |
| Emit a partial diagnostic. | |
| SemaDiagnosticBuilder | DiagCompat (SourceLocation Loc, unsigned CompatDiagId) |
| 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::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 1867 of file SemaRISCV.cpp.
References clang::SemaBase::SemaBase().
| bool clang::SemaRISCV::CheckBuiltinFunctionCall | ( | const TargetInfo & | TI, |
| unsigned | BuiltinID, | ||
| CallExpr * | TheCall ) |
Definition at line 557 of file SemaRISCV.cpp.
References clang::cast(), clang::Type::castAs(), clang::CheckInvalidVLENandLMUL(), CheckLMUL(), Diag(), clang::ASTContext::BuiltinVectorTypeInfo::EC, clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::ActionResult< PtrTy, Compress >::get(), clang::CallExpr::getArg(), clang::Type::getAs(), clang::SemaBase::getASTContext(), clang::Decl::getAttr(), clang::CallExpr::getBeginLoc(), clang::DeclRefExpr::getBeginLoc(), clang::CallExpr::getCallee(), clang::CallExpr::getCalleeDecl(), clang::QualType::getCanonicalType(), clang::CallExpr::getNumArgs(), clang::PointerType::getPointeeType(), clang::Stmt::getSourceRange(), clang::Expr::getType(), clang::QualType::getTypePtr(), 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::Expr::isTypeDependent(), clang::Expr::isValueDependent(), clang::Type::isVectorType(), clang::ASTContext::BuiltinVectorTypeInfo::NumVectors, clang::Result, clang::SemaBase::SemaRef, clang::CallExpr::setArg(), and clang::Expr::setType().
Definition at line 505 of file SemaRISCV.cpp.
References 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 1526 of file SemaRISCV.cpp.
References clang::Type::castAs(), DeclareAndesVectorBuiltins, Diag(), clang::ASTContext::BuiltinVectorTypeInfo::EC, clang::ASTContext::BuiltinVectorTypeInfo::ElementType, clang::Type::isBFloat16Type(), clang::Type::isFloat16Type(), clang::Type::isIntegerType(), clang::Type::isSpecificBuiltinType(), and clang::SemaBase::SemaRef.
Referenced by clang::Sema::CheckVariableDeclarationType().
| bool clang::SemaRISCV::checkTargetClonesAttr | ( | const SmallVectorImpl< StringRef > & | Params, |
| const SmallVectorImpl< SourceLocation > & | Locs, | ||
| SmallVectorImpl< SmallString< 64 > > & | NewParams, | ||
| SourceLocation | AttrLoc ) |
Definition at line 1806 of file SemaRISCV.cpp.
References Diag(), clang::ParsedTargetAttr::Features, clang::SemaBase::getASTContext(), clang::None, and clang::TargetClones.
Referenced by handleTargetClonesAttr().
| bool clang::SemaRISCV::checkTargetVersionAttr | ( | const StringRef | Param, |
| const SourceLocation | Loc, | ||
| SmallString< 64 > & | NewParam ) |
Definition at line 1754 of file SemaRISCV.cpp.
References Diag(), clang::ParsedTargetAttr::Features, clang::SemaBase::getASTContext(), clang::None, and clang::TargetVersion.
Referenced by handleTargetVersionAttr().
| void clang::SemaRISCV::handleInterruptAttr | ( | Decl * | D, |
| const ParsedAttr & | AL ) |
Definition at line 1592 of file SemaRISCV.cpp.
References clang::Decl::addAttr(), clang::ParsedAttr::checkAtMostNumArgs(), 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(), HasFeature(), clang::TargetInfo::hasFeature(), clang::hasFunctionProto(), clang::AttributeCommonInfo::isRegularKeywordAttribute(), and clang::SemaBase::SemaRef.
Referenced by handleInterruptAttr().
Definition at line 1739 of file SemaRISCV.cpp.
References clang::RISCV::FirstRVVBuiltin, and clang::RISCV::LastRVVBuiltin.
Referenced by handleBuiltinAliasAttr().
| bool clang::SemaRISCV::isValidFMVExtension | ( | StringRef | Ext | ) |
Definition at line 1744 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 1577 of file SemaRISCV.cpp.
References clang::VectorType::getVectorKind(), clang::Type::isRVVSizelessBuiltinType(), clang::Type::isVectorType(), and clang::RVVFixedLengthData.
Indicate RISC-V Andes vector builtin functions enabled or not.
Definition at line 55 of file SemaRISCV.h.
Referenced by checkRVVTypeSupport().
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 57 of file SemaRISCV.h.
Referenced by clang::Sema::LookupBuiltin().