1 //===-- BPFSubtarget.cpp - BPF Subtarget Information ----------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file implements the BPF specific subclass of TargetSubtargetInfo.
12 //===----------------------------------------------------------------------===//
14 #include "BPFSubtarget.h"
16 #include "llvm/Support/Host.h"
17 #include "llvm/Support/TargetRegistry.h"
21 #define DEBUG_TYPE "bpf-subtarget"
23 #define GET_SUBTARGETINFO_TARGET_DESC
24 #define GET_SUBTARGETINFO_CTOR
25 #include "BPFGenSubtargetInfo.inc"
27 void BPFSubtarget::anchor() {}
29 BPFSubtarget &BPFSubtarget::initializeSubtargetDependencies(StringRef CPU,
31 initializeEnvironment();
32 initSubtargetFeatures(CPU, FS);
33 ParseSubtargetFeatures(CPU, FS);
37 void BPFSubtarget::initializeEnvironment() {
43 void BPFSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
45 CPU = sys::detail::getHostCPUNameForBPF();
46 if (CPU == "generic" || CPU == "v1")
54 BPFSubtarget::BPFSubtarget(const Triple &TT, const std::string &CPU,
55 const std::string &FS, const TargetMachine &TM)
56 : BPFGenSubtargetInfo(TT, CPU, FS), InstrInfo(),
57 FrameLowering(initializeSubtargetDependencies(CPU, FS)),