24#define DEBUG_TYPE "bpf-subtarget"
26#define GET_SUBTARGETINFO_TARGET_DESC
27#define GET_SUBTARGETINFO_CTOR
28#include "BPFGenSubtargetInfo.inc"
42 cl::desc(
"Disable BPF_ST (immediate store) insn"));
44void BPFSubtarget::anchor() {}
48 initializeEnvironment();
49 initSubtargetFeatures(CPU, FS);
54void BPFSubtarget::initializeEnvironment() {
72 if (CPU ==
"generic" || CPU ==
"v1")
101 FrameLowering(initializeSubtargetDependencies(CPU, FS)),
This file describes how to lower LLVM calls to machine code calls.
This file declares the targeting of the Machinelegalizer class for BPF.
This file declares the targeting of the RegisterBankInfo class for BPF.
static cl::opt< bool > Disable_sdiv_smod("disable-sdiv-smod", cl::Hidden, cl::init(false), cl::desc("Disable sdiv/smod insns"))
static cl::opt< bool > Disable_ldsx("disable-ldsx", cl::Hidden, cl::init(false), cl::desc("Disable ldsx insns"))
static cl::opt< bool > Disable_gotol("disable-gotol", cl::Hidden, cl::init(false), cl::desc("Disable gotol insn"))
static cl::opt< bool > Disable_movsx("disable-movsx", cl::Hidden, cl::init(false), cl::desc("Disable movsx insns"))
static cl::opt< bool > Disable_StoreImm("disable-storeimm", cl::Hidden, cl::init(false), cl::desc("Disable BPF_ST (immediate store) insn"))
static cl::opt< bool > Disable_bswap("disable-bswap", cl::Hidden, cl::init(false), cl::desc("Disable bswap insns"))
This class provides the information for the BPF target legalizer for GlobalISel.
BPFSubtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const TargetMachine &TM)
InstructionSelector * getInstructionSelector() const override
BPFSubtarget & initializeSubtargetDependencies(StringRef CPU, StringRef FS)
std::unique_ptr< InstructionSelector > InstSelector
std::unique_ptr< CallLowering > CallLoweringInfo
const CallLowering * getCallLowering() const override
std::unique_ptr< RegisterBankInfo > RegBankInfo
const BPFRegisterInfo * getRegisterInfo() const override
const RegisterBankInfo * getRegBankInfo() const override
const BPFTargetLowering * getTargetLowering() const override
const LegalizerInfo * getLegalizerInfo() const override
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
Holds all the information related to register banks.
StringRef - Represent a constant reference to a string, i.e.
constexpr bool empty() const
empty - Check if the string is empty.
Primary interface to the complete machine description for the target machine.
Triple - Helper class for working with autoconf configuration names.
initializer< Ty > init(const Ty &Val)
StringRef getHostCPUNameForBPF()
This is an optimization pass for GlobalISel generic memory operations.
InstructionSelector * createBPFInstructionSelector(const BPFTargetMachine &, const BPFSubtarget &, const BPFRegisterBankInfo &)