clang 20.0.0git
|
#include "ABIInfoImpl.h"
#include "TargetInfo.h"
#include "clang/AST/Decl.h"
#include "clang/Basic/DiagnosticFrontend.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "clang/Basic/AArch64SVEACLETypes.def"
Go to the source code of this file.
Macros | |
#define | SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId) |
#define | SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId) |
#define | SVE_TYPE(Name, Id, SingletonId) |
Enumerations | |
enum class | ArmSMEInlinability : uint8_t { Ok = 0 , ErrorCalleeRequiresNewZA = 1 << 0 , WarnIncompatibleStreamingModes = 1 << 1 , ErrorIncompatibleStreamingModes = 1 << 2 , IncompatibleStreamingModes , LLVM_MARK_AS_BITMASK_ENUM =(ErrorIncompatibleStreamingModes) } |
Functions | |
static bool | isStreamingCompatible (const FunctionDecl *F) |
static void | diagnoseIfNeedsFPReg (DiagnosticsEngine &Diags, const StringRef ABIName, const AArch64ABIInfo &ABIInfo, const QualType &Ty, const NamedDecl *D, SourceLocation loc) |
static ArmSMEInlinability | GetArmSMEInlinability (const FunctionDecl *Caller, const FunctionDecl *Callee) |
Determines if there are any Arm SME ABI issues with inlining Callee into Caller . | |
#define SVE_PREDICATE_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
#define SVE_TYPE | ( | Name, | |
Id, | |||
SingletonId | |||
) |
#define SVE_VECTOR_TYPE | ( | Name, | |
MangledName, | |||
Id, | |||
SingletonId | |||
) |
|
strong |
Enumerator | |
---|---|
Ok | |
ErrorCalleeRequiresNewZA | |
WarnIncompatibleStreamingModes | |
ErrorIncompatibleStreamingModes | |
IncompatibleStreamingModes | |
LLVM_MARK_AS_BITMASK_ENUM |
Definition at line 1169 of file AArch64.cpp.
|
static |
Definition at line 1136 of file AArch64.cpp.
References D, clang::Type::isFloatingType(), clang::CodeGen::ABIInfo::isHomogeneousAggregate(), clang::Type::isVectorType(), and clang::DiagnosticsEngine::Report().
|
static |
Determines if there are any Arm SME ABI issues with inlining Callee
into Caller
.
Returns the issue (if any) in the ArmSMEInlinability bit enum.
Definition at line 1183 of file AArch64.cpp.
References ErrorCalleeRequiresNewZA, ErrorIncompatibleStreamingModes, clang::IsArmStreamingFunction(), isStreamingCompatible(), Ok, and WarnIncompatibleStreamingModes.
|
static |
Definition at line 1127 of file AArch64.cpp.
References clang::FunctionProtoType::getAArch64SMEAttributes(), clang::Type::getAs(), clang::ValueDecl::getType(), clang::FunctionType::SME_PStateSMCompatibleMask, and clang::T.
Referenced by GetArmSMEInlinability().