Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/lib/Target/RISCV/RISCVTargetMachine.h
Show All 9 Lines | |||||
// This file declares the RISCV specific subclass of TargetMachine. | // This file declares the RISCV specific subclass of TargetMachine. | ||||
// | // | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
#ifndef LLVM_LIB_TARGET_RISCV_RISCVTARGETMACHINE_H | #ifndef LLVM_LIB_TARGET_RISCV_RISCVTARGETMACHINE_H | ||||
#define LLVM_LIB_TARGET_RISCV_RISCVTARGETMACHINE_H | #define LLVM_LIB_TARGET_RISCV_RISCVTARGETMACHINE_H | ||||
#include "MCTargetDesc/RISCVMCTargetDesc.h" | #include "MCTargetDesc/RISCVMCTargetDesc.h" | ||||
#include "RISCVSubtarget.h" | |||||
#include "llvm/CodeGen/SelectionDAGTargetInfo.h" | #include "llvm/CodeGen/SelectionDAGTargetInfo.h" | ||||
#include "llvm/IR/DataLayout.h" | #include "llvm/IR/DataLayout.h" | ||||
#include "llvm/Target/TargetMachine.h" | #include "llvm/Target/TargetMachine.h" | ||||
namespace llvm { | namespace llvm { | ||||
class RISCVTargetMachine : public LLVMTargetMachine { | class RISCVTargetMachine : public LLVMTargetMachine { | ||||
std::unique_ptr<TargetLoweringObjectFile> TLOF; | std::unique_ptr<TargetLoweringObjectFile> TLOF; | ||||
RISCVSubtarget Subtarget; | |||||
public: | public: | ||||
RISCVTargetMachine(const Target &T, const Triple &TT, StringRef CPU, | RISCVTargetMachine(const Target &T, const Triple &TT, StringRef CPU, | ||||
StringRef FS, const TargetOptions &Options, | StringRef FS, const TargetOptions &Options, | ||||
Optional<Reloc::Model> RM, Optional<CodeModel::Model> CM, | Optional<Reloc::Model> RM, Optional<CodeModel::Model> CM, | ||||
CodeGenOpt::Level OL, bool JIT); | CodeGenOpt::Level OL, bool JIT); | ||||
const RISCVSubtarget *getSubtargetImpl(const Function &) const override { | |||||
return &Subtarget; | |||||
} | |||||
TargetPassConfig *createPassConfig(PassManagerBase &PM) override; | TargetPassConfig *createPassConfig(PassManagerBase &PM) override; | ||||
TargetLoweringObjectFile *getObjFileLowering() const override { | TargetLoweringObjectFile *getObjFileLowering() const override { | ||||
return TLOF.get(); | return TLOF.get(); | ||||
} | } | ||||
}; | }; | ||||
} | } | ||||
#endif | #endif |