| //===- LanaiSubtarget.cpp - Lanai Subtarget Information -----------*- C++ -*-=// | |
| // | |
| // The LLVM Compiler Infrastructure | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // This file implements the Lanai specific subclass of TargetSubtarget. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "LanaiSubtarget.h" | |
| #include "Lanai.h" | |
| #define DEBUG_TYPE "lanai-subtarget" | |
| #define GET_SUBTARGETINFO_TARGET_DESC | |
| #define GET_SUBTARGETINFO_CTOR | |
| #include "LanaiGenSubtargetInfo.inc" | |
| using namespace llvm; | |
| void LanaiSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) { | |
| std::string CPUName = CPU; | |
| if (CPUName.empty()) | |
| CPUName = "generic"; | |
| ParseSubtargetFeatures(CPUName, FS); | |
| } | |
| LanaiSubtarget &LanaiSubtarget::initializeSubtargetDependencies(StringRef CPU, | |
| StringRef FS) { | |
| initSubtargetFeatures(CPU, FS); | |
| return *this; | |
| } | |
| LanaiSubtarget::LanaiSubtarget(const Triple &TargetTriple, StringRef Cpu, | |
| StringRef FeatureString, const TargetMachine &TM, | |
| const TargetOptions & /*Options*/, | |
| CodeModel::Model /*CodeModel*/, | |
| CodeGenOpt::Level /*OptLevel*/) | |
| : LanaiGenSubtargetInfo(TargetTriple, Cpu, FeatureString), | |
| FrameLowering(initializeSubtargetDependencies(Cpu, FeatureString)), | |
| InstrInfo(), TLInfo(TM, *this), TSInfo() {} |