annotate lib/Target/Lanai/LanaiTargetMachine.h @ 120:1172e4bd9c6f

update 4.0.0
author mir3636
date Fri, 25 Nov 2016 19:14:25 +0900
parents
children 803732b1fca8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 //===-- LanaiTargetMachine.h - Define TargetMachine for 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 TargetMachine.
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_LANAITARGETMACHINE_H
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15 #define LLVM_LIB_TARGET_LANAI_LANAITARGETMACHINE_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"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
21 #include "LanaiSubtarget.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
22 #include "llvm/Target/TargetFrameLowering.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
23 #include "llvm/Target/TargetMachine.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25 namespace llvm {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
26 class formatted_raw_ostream;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
27
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
28 class LanaiTargetMachine : public LLVMTargetMachine {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
29 LanaiSubtarget Subtarget;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
30 std::unique_ptr<TargetLoweringObjectFile> TLOF;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
31
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
32 public:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
33 LanaiTargetMachine(const Target &TheTarget, const Triple &TargetTriple,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34 StringRef Cpu, StringRef FeatureString,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 const TargetOptions &Options,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 Optional<Reloc::Model> RelocationModel,
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 CodeModel::Model CodeModel, CodeGenOpt::Level OptLevel);
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39 const LanaiSubtarget *
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40 getSubtargetImpl(const llvm::Function & /*Fn*/) const override {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
41 return &Subtarget;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
42 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
43
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 TargetIRAnalysis getTargetIRAnalysis() override;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46 // Pass Pipeline Configuration
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47 TargetPassConfig *createPassConfig(PassManagerBase &pass_manager) override;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49 TargetLoweringObjectFile *getObjFileLowering() const override {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
50 return TLOF.get();
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 };
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53 } // namespace llvm
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
54
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55 #endif // LLVM_LIB_TARGET_LANAI_LANAITARGETMACHINE_H