clang 24.0.0git
AArch64.cpp File Reference
#include "ABIInfo.h"
#include "CIRGenFunction.h"
#include "CIRGenModule.h"
#include "TargetInfo.h"
#include "clang/AST/Decl.h"
#include "clang/CIR/MissingFeatures.h"

Go to the source code of this file.

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) , 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 *fd)
static ArmSMEInlinability getArmSMEInlinability (const FunctionDecl *caller, const FunctionDecl *callee)
 Determines if there are any Arm SME ABI issues with inlining Callee into Caller.

Enumeration Type Documentation

◆ ArmSMEInlinability

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

Definition at line 60 of file AArch64.cpp.

Function Documentation

◆ 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 82 of file AArch64.cpp.

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

◆ isStreamingCompatible()

bool isStreamingCompatible ( const FunctionDecl * fd)
static