1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/lib/Target/Lanai/LanaiSubtarget.h
David Blaikie e01dc73ad2 Fix a bunch more layering of CodeGen headers that are in Target
All these headers already depend on CodeGen headers so moving them into
CodeGen fixes the layering (since CodeGen depends on Target, not the
other way around).

llvm-svn: 318490
2017-11-17 01:07:10 +00:00

77 lines
2.4 KiB
C++

//=====-- LanaiSubtarget.h - Define Subtarget for the Lanai -----*- C++ -*--==//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file declares the Lanai specific subclass of TargetSubtarget.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
#define LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
#include "LanaiFrameLowering.h"
#include "LanaiISelLowering.h"
#include "LanaiInstrInfo.h"
#include "LanaiSelectionDAGInfo.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/Target/TargetMachine.h"
#define GET_SUBTARGETINFO_HEADER
#include "LanaiGenSubtargetInfo.inc"
namespace llvm {
class LanaiSubtarget : public LanaiGenSubtargetInfo {
public:
// This constructor initializes the data members to match that
// of the specified triple.
LanaiSubtarget(const Triple &TargetTriple, StringRef Cpu,
StringRef FeatureString, const TargetMachine &TM,
const TargetOptions &Options, CodeModel::Model CodeModel,
CodeGenOpt::Level OptLevel);
// ParseSubtargetFeatures - Parses features string setting specified
// subtarget options. Definition of function is auto generated by tblgen.
void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
LanaiSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS);
void initSubtargetFeatures(StringRef CPU, StringRef FS);
bool enableMachineScheduler() const override { return true; }
const LanaiInstrInfo *getInstrInfo() const override { return &InstrInfo; }
const TargetFrameLowering *getFrameLowering() const override {
return &FrameLowering;
}
const LanaiRegisterInfo *getRegisterInfo() const override {
return &InstrInfo.getRegisterInfo();
}
const LanaiTargetLowering *getTargetLowering() const override {
return &TLInfo;
}
const LanaiSelectionDAGInfo *getSelectionDAGInfo() const override {
return &TSInfo;
}
private:
LanaiFrameLowering FrameLowering;
LanaiInstrInfo InstrInfo;
LanaiTargetLowering TLInfo;
LanaiSelectionDAGInfo TSInfo;
};
} // namespace llvm
#endif // LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H