LLVM 24.0.0git
LanaiSubtarget.h
Go to the documentation of this file.
1//=====-- LanaiSubtarget.h - Define Subtarget for the Lanai -----*- C++ -*--==//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file declares the Lanai specific subclass of TargetSubtarget.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
14#define LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
15
16#include "LanaiFrameLowering.h"
17#include "LanaiISelLowering.h"
18#include "LanaiInstrInfo.h"
21#include "llvm/IR/DataLayout.h"
23
24#define OPTIONS_STRUCT_DECL
25#include "LanaiOptions.inc"
26
27#define GET_SUBTARGETINFO_HEADER
28#include "LanaiGenSubtargetInfo.inc"
29
30namespace llvm {
31class LanaiTargetMachine;
32
34public:
35 // This constructor initializes the data members to match that
36 // of the specified triple.
37 LanaiSubtarget(const Triple &TargetTriple, StringRef Cpu,
38 StringRef FeatureString, const LanaiTargetMachine &TM,
40 CodeGenOptLevel OptLevel);
41
42 const LanaiOptions &getCLOpts() const { return CLOpts; }
43
44 // ParseSubtargetFeatures - Parses features string setting specified
45 // subtarget options. Definition of function is auto generated by tblgen.
47
49
51
52 bool enableMachineScheduler() const override { return true; }
53
54 const LanaiInstrInfo *getInstrInfo() const override { return &InstrInfo; }
55
56 const TargetFrameLowering *getFrameLowering() const override {
57 return &FrameLowering;
58 }
59
60 const LanaiRegisterInfo *getRegisterInfo() const override {
61 return &InstrInfo.getRegisterInfo();
62 }
63
64 const LanaiTargetLowering *getTargetLowering() const override {
65 return &TLInfo;
66 }
67
69 return &TSInfo;
70 }
71
72private:
73 const LanaiOptions &CLOpts;
74 LanaiInstrInfo InstrInfo;
75 LanaiFrameLowering FrameLowering;
78};
79} // namespace llvm
80
81#endif // LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
static LVOptions Options
Definition LVOptions.cpp:25
const LanaiOptions & getCLOpts() const
LanaiSubtarget(const Triple &TargetTriple, StringRef Cpu, StringRef FeatureString, const LanaiTargetMachine &TM, const TargetOptions &Options, CodeModel::Model CodeModel, CodeGenOptLevel OptLevel)
const LanaiRegisterInfo * getRegisterInfo() const override
const LanaiInstrInfo * getInstrInfo() const override
void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)
const TargetFrameLowering * getFrameLowering() const override
const LanaiSelectionDAGInfo * getSelectionDAGInfo() const override
void initSubtargetFeatures(StringRef CPU, StringRef FS)
LanaiSubtarget & initializeSubtargetDependencies(StringRef CPU, StringRef FS)
bool enableMachineScheduler() const override
const LanaiTargetLowering * getTargetLowering() const override
Represent a constant reference to a string, i.e.
Definition StringRef.h:56
Information about stack frame layout on the target.
Triple - Helper class for working with autoconf configuration names.
Definition Triple.h:48
This is an optimization pass for GlobalISel generic memory operations.
CodeGenOptLevel
Code generation optimization level.
Definition CodeGen.h:227