clang 20.0.0git
Macros | Enumerations | Functions
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/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.
 

Macro Definition Documentation

◆ SVE_PREDICATE_TYPE

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

◆ SVE_TYPE

#define SVE_TYPE (   Name,
  Id,
  SingletonId 
)

◆ 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 
WarnIncompatibleStreamingModes 
ErrorIncompatibleStreamingModes 
IncompatibleStreamingModes 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 1169 of file AArch64.cpp.

Function Documentation

◆ diagnoseIfNeedsFPReg()

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

◆ GetArmSMEInlinability()

static 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 1183 of file AArch64.cpp.

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

◆ isStreamingCompatible()

static bool isStreamingCompatible ( const FunctionDecl F)
static