forked from sabottenda/llvm-sample-target
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SampleSubtarget.h
70 lines (60 loc) · 2.18 KB
/
SampleSubtarget.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//===-- SampleSubtarget.h - Define Subtarget for the Sample ----*- 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 Sample specific subclass of TargetSubtargetInfo.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_TARGET_SAMPLE_SUBTARGET_H
#define LLVM_TARGET_SAMPLE_SUBTARGET_H
#include "SampleFrameLowering.h"
#include "SampleInstrInfo.h"
#include "SampleISelLowering.h"
#include "SampleRegisterInfo.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/CodeGen/SelectionDAGTargetInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include <string>
#define GET_SUBTARGETINFO_HEADER
#include "SampleGenSubtargetInfo.inc"
namespace llvm {
class StringRef;
class SampleSubtarget : public SampleGenSubtargetInfo {
virtual void anchor() {};
bool ExtendedInsts;
SampleInstrInfo InstrInfo;
SampleFrameLowering FrameLowering;
SampleTargetLowering TLInfo;
SelectionDAGTargetInfo TSInfo;
public:
/// This constructor initializes the data members to match that
/// of the specified triple.
SampleSubtarget(const Triple &TT, const std::string &CPU,
const std::string &FS, const SampleTargetMachine &TM);
// Autogenerated by tblgen.
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
const SampleInstrInfo *getInstrInfo() const override {
return &InstrInfo;
}
const SampleRegisterInfo *getRegisterInfo() const override {
return &getInstrInfo()->getRegisterInfo();
}
const SampleTargetLowering *getTargetLowering() const override {
return &TLInfo;
}
const SampleFrameLowering *getFrameLowering() const override {
return &FrameLowering;
}
const SelectionDAGTargetInfo* getSelectionDAGInfo() const override {
return &TSInfo;
}
};
} // End llvm namespace
#endif // LLVM_TARGET_SAMPLE_SUBTARGET_H