LLVM: lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp File Reference (original) (raw)

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

Go to the source code of this file.

Macros
#define DEBUG_TYPE "arm64eccalllowering"
Functions
STATISTIC (Arm64ECCallsLowered, "Number of Arm64EC calls lowered")
std::optional< std::string > getArm64ECMangledFunctionName (GlobalValue &GV)
INITIALIZE_PASS (AArch64Arm64ECCallLowering, "Arm64ECCallLowering", "AArch64Arm64ECCallLowering", false, false) ModulePass *llvm
Variables
static cl::opt< bool > LowerDirectToIndirect ("arm64ec-lower-direct-to-indirect", cl::Hidden, cl::init(true))
static cl::opt< bool > GenerateThunks ("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"

Typedef Documentation

OperandBundleDef

Function Documentation

getArm64ECMangledFunctionName()

INITIALIZE_PASS()

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

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