annotate lib/Target/Lanai/LanaiSubtarget.h @ 134:3a76565eade5 LLVM5.0.1

update 5.0.1
author mir3636
date Sat, 17 Feb 2018 09:57:20 +0900
parents 1172e4bd9c6f
children c2174574ed3a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 //=====-- LanaiSubtarget.h - Define Subtarget for the Lanai -----*- C++ -*--==//
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
2 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
3 // The LLVM Compiler Infrastructure
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
4 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
5 // This file is distributed under the University of Illinois Open Source
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
6 // License. See LICENSE.TXT for details.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
7 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
8 //===----------------------------------------------------------------------===//
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
9 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
10 // This file declares the Lanai specific subclass of TargetSubtarget.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
11 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
12 //===----------------------------------------------------------------------===//
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
13
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
14 #ifndef LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15 #define LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
16
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
17 #include "LanaiFrameLowering.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
18 #include "LanaiISelLowering.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
19 #include "LanaiInstrInfo.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
20 #include "LanaiSelectionDAGInfo.h"
134
3a76565eade5 update 5.0.1
mir3636
parents: 120
diff changeset
21 #include "llvm/CodeGen/TargetFrameLowering.h"
3a76565eade5 update 5.0.1
mir3636
parents: 120
diff changeset
22 #include "llvm/CodeGen/TargetSubtargetInfo.h"
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
23 #include "llvm/IR/DataLayout.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24 #include "llvm/Target/TargetMachine.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
26 #define GET_SUBTARGETINFO_HEADER
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
27 #include "LanaiGenSubtargetInfo.inc"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
28
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
29 namespace llvm {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
30
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
31 class LanaiSubtarget : public LanaiGenSubtargetInfo {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
32 public:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
33 // This constructor initializes the data members to match that
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34 // of the specified triple.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 LanaiSubtarget(const Triple &TargetTriple, StringRef Cpu,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 StringRef FeatureString, const TargetMachine &TM,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 const TargetOptions &Options, CodeModel::Model CodeModel,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38 CodeGenOpt::Level OptLevel);
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40 // ParseSubtargetFeatures - Parses features string setting specified
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
41 // subtarget options. Definition of function is auto generated by tblgen.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
42 void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
43
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 LanaiSubtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS);
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46 void initSubtargetFeatures(StringRef CPU, StringRef FS);
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48 bool enableMachineScheduler() const override { return true; }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
50 const LanaiInstrInfo *getInstrInfo() const override { return &InstrInfo; }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 const TargetFrameLowering *getFrameLowering() const override {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53 return &FrameLowering;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
54 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
56 const LanaiRegisterInfo *getRegisterInfo() const override {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
57 return &InstrInfo.getRegisterInfo();
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
58 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
59
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
60 const LanaiTargetLowering *getTargetLowering() const override {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
61 return &TLInfo;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
62 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
63
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
64 const LanaiSelectionDAGInfo *getSelectionDAGInfo() const override {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
65 return &TSInfo;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
66 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
67
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
68 private:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
69 LanaiFrameLowering FrameLowering;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
70 LanaiInstrInfo InstrInfo;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
71 LanaiTargetLowering TLInfo;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
72 LanaiSelectionDAGInfo TSInfo;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
73 };
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
74 } // namespace llvm
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
75
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
76 #endif // LLVM_LIB_TARGET_LANAI_LANAISUBTARGET_H