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) |
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 1495 of file SemaRISCV.cpp.
bool clang::SemaRISCV::CheckBuiltinFunctionCall | ( | const TargetInfo & | TI, |
unsigned | BuiltinID, | ||
CallExpr * | TheCall | ||
) |
Definition at line 565 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::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 515 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 1380 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 1432 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 1490 of file SemaRISCV.cpp.
References clang::RISCV::FirstRVVBuiltin, and clang::RISCV::LastRVVBuiltin.
Referenced by handleBuiltinAliasAttr().
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 1417 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 48 of file SemaRISCV.h.
Indicate RISC-V SiFive vector builtin functions enabled or not.
Definition at line 51 of file SemaRISCV.h.
std::unique_ptr<sema::RISCVIntrinsicManager> clang::SemaRISCV::IntrinsicManager |
Definition at line 53 of file SemaRISCV.h.
Referenced by clang::Sema::LookupBuiltin().