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"));
 
   45    cl::desc(
"Disable load-acquire and store-release insns"));
 
   49void BPFSubtarget::anchor() {}
 
   53  initializeEnvironment();
 
   54  initSubtargetFeatures(CPU, FS);
 
 
   59void BPFSubtarget::initializeEnvironment() {
 
   79  if (CPU == 
"generic" || CPU == 
"v1")
 
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_gotox("disable-gotox", cl::Hidden, cl::init(false), cl::desc("Disable gotox insn"))
 
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_load_acq_store_rel("disable-load-acq-store-rel", cl::Hidden, cl::init(false), cl::desc("Disable load-acquire and store-release insns"))
 
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< LegalizerInfo > Legalizer
 
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.
 
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)
 
LLVM_ABI StringRef getHostCPUNameForBPF()
 
This is an optimization pass for GlobalISel generic memory operations.
 
InstructionSelector * createBPFInstructionSelector(const BPFTargetMachine &, const BPFSubtarget &, const BPFRegisterBankInfo &)