LLVM 22.0.0git
|
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/GlobalAlias.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Mangler.h"
#include "llvm/IR/Module.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") | |
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)) |
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.
#define DEBUG_TYPE "arm64eccalllowering" |
Definition at line 39 of file AArch64Arm64ECCallLowering.cpp.
using OperandBundleDef = OperandBundleDefT<Value *> |
Definition at line 37 of file AArch64Arm64ECCallLowering.cpp.
std::optional< std::string > getArm64ECMangledFunctionName | ( | GlobalValue & | GV | ) |
Definition at line 615 of file AArch64Arm64ECCallLowering.cpp.
References llvm::getArm64ECMangledFunctionName(), llvm::Value::getName(), llvm::Value::hasName(), and llvm::Value::setName().
INITIALIZE_PASS | ( | AArch64Arm64ECCallLowering | , |
"Arm64ECCallLowering" | , | ||
"AArch64Arm64ECCallLowering" | , | ||
false | , | ||
false | ) |
Definition at line 1015 of file AArch64Arm64ECCallLowering.cpp.
References llvm::createAArch64Arm64ECCallLoweringPass().
STATISTIC | ( | Arm64ECCallsLowered | , |
"Number of Arm64EC calls lowered" | ) |
|
static |