#include "BPFInstrInfo.h"
#include "BPFRegisterBankInfo.h"
#include "BPFSubtarget.h"
#include "BPFTargetMachine.h"
#include "llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h"
#include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/IR/IntrinsicsBPF.h"
#include "llvm/Support/Debug.h"
#define DEBUG_TYPE …
usingnamespacellvm;
namespace {
#define GET_GLOBALISEL_PREDICATE_BITSET
#include "BPFGenGlobalISel.inc"
#undef GET_GLOBALISEL_PREDICATE_BITSET
class BPFInstructionSelector : public InstructionSelector { … };
}
#define GET_GLOBALISEL_IMPL
#include "BPFGenGlobalISel.inc"
#undef GET_GLOBALISEL_IMPL
BPFInstructionSelector::BPFInstructionSelector(const BPFTargetMachine &TM,
const BPFSubtarget &STI,
const BPFRegisterBankInfo &RBI)
: … { … }
bool BPFInstructionSelector::select(MachineInstr &I) { … }
namespace llvm {
InstructionSelector *
createBPFInstructionSelector(const BPFTargetMachine &TM,
const BPFSubtarget &Subtarget,
const BPFRegisterBankInfo &RBI) { … }
}