clang 22.0.0git
AArch64.cpp File Reference
#include "ABIInfoImpl.h"
#include "TargetInfo.h"
#include "clang/AST/Decl.h"
#include "clang/Basic/DiagnosticFrontend.h"
#include "llvm/TargetParser/AArch64TargetParser.h"
#include "clang/Basic/AArch64ACLETypes.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)

Enumerations

enum class  ArmSMEInlinability : uint8_t {
  Ok = 0 , ErrorCalleeRequiresNewZA = 1 << 0 , ErrorCalleeRequiresNewZT0 = 1 << 1 , WarnIncompatibleStreamingModes = 1 << 2 ,
  ErrorIncompatibleStreamingModes = 1 << 3 , 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.

Macro Definition Documentation

◆ SVE_PREDICATE_TYPE

#define SVE_PREDICATE_TYPE ( Name,
MangledName,
Id,
SingletonId )
Value:
case BuiltinType::Id: \
isPredicate = true; \
break;

◆ SVE_VECTOR_TYPE

#define SVE_VECTOR_TYPE ( Name,
MangledName,
Id,
SingletonId )
Value:
case BuiltinType::Id: \
isPredicate = false; \
break;

Enumeration Type Documentation

◆ ArmSMEInlinability

enum class ArmSMEInlinability : uint8_t
strong
Enumerator
Ok 
ErrorCalleeRequiresNewZA 
ErrorCalleeRequiresNewZT0 
WarnIncompatibleStreamingModes 
ErrorIncompatibleStreamingModes 
IncompatibleStreamingModes 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 1205 of file AArch64.cpp.

Function Documentation

◆ diagnoseIfNeedsFPReg()

void diagnoseIfNeedsFPReg ( DiagnosticsEngine & Diags,
const StringRef ABIName,
const AArch64ABIInfo & ABIInfo,
const QualType & Ty,
const NamedDecl * D,
SourceLocation loc )
static

◆ GetArmSMEInlinability()

ArmSMEInlinability GetArmSMEInlinability ( const FunctionDecl * Caller,
const FunctionDecl * Callee )
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 1220 of file AArch64.cpp.

References ErrorCalleeRequiresNewZA, ErrorCalleeRequiresNewZT0, ErrorIncompatibleStreamingModes, clang::IsArmStreamingFunction(), isStreamingCompatible(), Ok, and WarnIncompatibleStreamingModes.

◆ isStreamingCompatible()

bool isStreamingCompatible ( const FunctionDecl * F)
static