LLVM 19.0.0git
Macros | Typedefs | Functions | Variables
AArch64Arm64ECCallLowering.cpp File Reference

This file contains the IR transform to lower external or indirect calls for the ARM64EC calling convention. More...

#include "AArch64.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Mangler.h"
#include "llvm/InitializePasses.h"
#include "llvm/Object/COFF.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/TargetParser/Triple.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "arm64eccalllowering"
 

Typedefs

using OperandBundleDef = OperandBundleDefT< Value * >
 

Functions

 STATISTIC (Arm64ECCallsLowered, "Number of Arm64EC calls lowered")
 
 INITIALIZE_PASS (AArch64Arm64ECCallLowering, "Arm64ECCallLowering", "AArch64Arm64ECCallLowering", false, false) ModulePass *llvm
 

Variables

static cl::opt< boolLowerDirectToIndirect ("arm64ec-lower-direct-to-indirect", cl::Hidden, cl::init(true))
 
static cl::opt< boolGenerateThunks ("arm64ec-generate-thunks", cl::Hidden, cl::init(true))
 

Detailed Description

This file contains the IR transform to lower external or indirect calls for the ARM64EC calling convention.

Such calls must go through the runtime, so we can translate the calling convention for calls into the emulator.

This subsumes Control Flow Guard handling.

Definition in file AArch64Arm64ECCallLowering.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "arm64eccalllowering"

Definition at line 38 of file AArch64Arm64ECCallLowering.cpp.

Typedef Documentation

◆ OperandBundleDef

Definition at line 36 of file AArch64Arm64ECCallLowering.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( AArch64Arm64ECCallLowering  ,
"Arm64ECCallLowering"  ,
"AArch64Arm64ECCallLowering"  ,
false  ,
false   
)

Definition at line 791 of file AArch64Arm64ECCallLowering.cpp.

◆ STATISTIC()

STATISTIC ( Arm64ECCallsLowered  ,
"Number of Arm64EC calls lowered"   
)

Variable Documentation

◆ GenerateThunks

cl::opt< bool > GenerateThunks("arm64ec-generate-thunks", cl::Hidden, cl::init(true)) ( "arm64ec-generate-thunks"  ,
cl::Hidden  ,
cl::init(true  
)
static

◆ LowerDirectToIndirect

cl::opt< bool > LowerDirectToIndirect("arm64ec-lower-direct-to-indirect", cl::Hidden, cl::init(true)) ( "arm64ec-lower-direct-to-indirect"  ,
cl::Hidden  ,
cl::init(true  
)
static