clang 22.0.0git
clang::SemaARM Class Reference

#include "clang/Sema/SemaARM.h"

Inheritance diagram for clang::SemaARM:
[legend]

Public Types

enum  ArmStreamingType { ArmNonStreaming , ArmStreaming , ArmStreamingCompatible , VerifyRuntimeMode }

Public Member Functions

 SemaARM (Sema &S)
bool CheckImmediateArg (CallExpr *TheCall, unsigned CheckTy, unsigned ArgIdx, unsigned EltBitWidth, unsigned VecBitWidth)
bool CheckARMBuiltinExclusiveCall (const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall)
bool CheckNeonBuiltinFunctionCall (const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall)
bool PerformNeonImmChecks (CallExpr *TheCall, SmallVectorImpl< std::tuple< int, int, int, int > > &ImmChecks, int OverloadType=-1)
bool PerformSVEImmChecks (CallExpr *TheCall, SmallVectorImpl< std::tuple< int, int, int > > &ImmChecks)
bool CheckMVEBuiltinFunctionCall (unsigned BuiltinID, CallExpr *TheCall)
bool CheckSVEBuiltinFunctionCall (unsigned BuiltinID, CallExpr *TheCall)
bool CheckSMEBuiltinFunctionCall (unsigned BuiltinID, CallExpr *TheCall)
bool CheckCDEBuiltinFunctionCall (const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall)
bool CheckARMCoprocessorImmediate (const TargetInfo &TI, const Expr *CoprocArg, bool WantCDE)
bool CheckARMBuiltinFunctionCall (const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall)
bool CheckAArch64BuiltinFunctionCall (const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall)
bool BuiltinARMSpecialReg (unsigned BuiltinID, CallExpr *TheCall, int ArgNum, unsigned ExpectedFieldNum, bool AllowName)
 BuiltinARMSpecialReg - Handle a check if argument ArgNum of CallExpr TheCall is an ARM/AArch64 special register string literal.
bool BuiltinARMMemoryTaggingCall (unsigned BuiltinID, CallExpr *TheCall)
 BuiltinARMMemoryTaggingCall - Handle calls of memory tagging extensions.
bool MveAliasValid (unsigned BuiltinID, llvm::StringRef AliasName)
bool CdeAliasValid (unsigned BuiltinID, llvm::StringRef AliasName)
bool SveAliasValid (unsigned BuiltinID, llvm::StringRef AliasName)
bool SmeAliasValid (unsigned BuiltinID, llvm::StringRef AliasName)
void handleBuiltinAliasAttr (Decl *D, const ParsedAttr &AL)
void handleNewAttr (Decl *D, const ParsedAttr &AL)
void handleCmseNSEntryAttr (Decl *D, const ParsedAttr &AL)
void handleInterruptAttr (Decl *D, const ParsedAttr &AL)
void handleInterruptSaveFPAttr (Decl *D, const ParsedAttr &AL)
void CheckSMEFunctionDefAttributes (const FunctionDecl *FD)
bool areCompatibleSveTypes (QualType FirstType, QualType SecondType)
 Return true if the given types are an SVE builtin and a VectorType that is a fixed-length representation of the SVE builtin for a specific vector-length.
bool areLaxCompatibleSveTypes (QualType FirstType, QualType SecondType)
 Return true if the given vector types are lax-compatible SVE vector types, false otherwise.
bool checkTargetVersionAttr (const StringRef Str, 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.

Additional Inherited Members

Public Attributes inherited from clang::SemaBase
SemaSemaRef

Detailed Description

Definition at line 31 of file SemaARM.h.

Member Enumeration Documentation

◆ ArmStreamingType

Enumerator
ArmNonStreaming 
ArmStreaming 

Intrinsic is only available in normal mode.

ArmStreamingCompatible 

Intrinsic is only available in Streaming-SVE mode.

VerifyRuntimeMode 

Intrinsic is available both in normal and Streaming-SVE mode.

Intrinsic is available in normal mode with SVE flags, or in Streaming-SVE mode with SME flags. Do Sema checks for the runtime mode.

Definition at line 35 of file SemaARM.h.

Constructor & Destructor Documentation

◆ SemaARM()

clang::SemaARM::SemaARM ( Sema & S)

Definition at line 23 of file SemaARM.cpp.

References clang::SemaBase::SemaBase().

Member Function Documentation

◆ areCompatibleSveTypes()

bool clang::SemaARM::areCompatibleSveTypes ( QualType FirstType,
QualType SecondType )

◆ areLaxCompatibleSveTypes()

◆ BuiltinARMMemoryTaggingCall()

◆ BuiltinARMSpecialReg()

bool clang::SemaARM::BuiltinARMSpecialReg ( unsigned BuiltinID,
CallExpr * TheCall,
int ArgNum,
unsigned ExpectedFieldNum,
bool AllowName )

◆ CdeAliasValid()

bool clang::SemaARM::CdeAliasValid ( unsigned BuiltinID,
llvm::StringRef AliasName )

Definition at line 1212 of file SemaARM.cpp.

References clang::BuiltinAliasValid().

Referenced by handleBuiltinAliasAttr(), and handleBuiltinAliasAttr().

◆ CheckAArch64BuiltinFunctionCall()

◆ CheckARMBuiltinExclusiveCall()

◆ CheckARMBuiltinFunctionCall()

◆ CheckARMCoprocessorImmediate()

◆ CheckCDEBuiltinFunctionCall()

bool clang::SemaARM::CheckCDEBuiltinFunctionCall ( const TargetInfo & TI,
unsigned BuiltinID,
CallExpr * TheCall )

Definition at line 808 of file SemaARM.cpp.

References CheckARMCoprocessorImmediate(), and clang::CallExpr::getArg().

Referenced by CheckARMBuiltinFunctionCall().

◆ CheckImmediateArg()

◆ CheckMVEBuiltinFunctionCall()

bool clang::SemaARM::CheckMVEBuiltinFunctionCall ( unsigned BuiltinID,
CallExpr * TheCall )

Definition at line 799 of file SemaARM.cpp.

Referenced by CheckARMBuiltinFunctionCall().

◆ CheckNeonBuiltinFunctionCall()

◆ CheckSMEBuiltinFunctionCall()

◆ CheckSMEFunctionDefAttributes()

◆ CheckSVEBuiltinFunctionCall()

bool clang::SemaARM::CheckSVEBuiltinFunctionCall ( unsigned BuiltinID,
CallExpr * TheCall )

◆ checkTargetClonesAttr()

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

◆ checkTargetVersionAttr()

bool clang::SemaARM::checkTargetVersionAttr ( const StringRef Str,
const SourceLocation Loc )

◆ handleBuiltinAliasAttr()

◆ handleCmseNSEntryAttr()

◆ handleInterruptAttr()

◆ handleInterruptSaveFPAttr()

void clang::SemaARM::handleInterruptSaveFPAttr ( Decl * D,
const ParsedAttr & AL )

◆ handleNewAttr()

◆ MveAliasValid()

bool clang::SemaARM::MveAliasValid ( unsigned BuiltinID,
llvm::StringRef AliasName )

Definition at line 1204 of file SemaARM.cpp.

References clang::BuiltinAliasValid().

Referenced by handleBuiltinAliasAttr(), and handleBuiltinAliasAttr().

◆ PerformNeonImmChecks()

bool clang::SemaARM::PerformNeonImmChecks ( CallExpr * TheCall,
SmallVectorImpl< std::tuple< int, int, int, int > > & ImmChecks,
int OverloadType = -1 )

◆ PerformSVEImmChecks()

bool clang::SemaARM::PerformSVEImmChecks ( CallExpr * TheCall,
SmallVectorImpl< std::tuple< int, int, int > > & ImmChecks )

Definition at line 532 of file SemaARM.cpp.

References CheckImmediateArg().

Referenced by CheckSMEBuiltinFunctionCall(), and CheckSVEBuiltinFunctionCall().

◆ SmeAliasValid()

bool clang::SemaARM::SmeAliasValid ( unsigned BuiltinID,
llvm::StringRef AliasName )

◆ SveAliasValid()


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