LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SystemZTargetMachine.h
Go to the documentation of this file.
1 //==- SystemZTargetMachine.h - Define TargetMachine for SystemZ ---*- C++ -*-=//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file declares the SystemZ specific subclass of TargetMachine.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 
15 #ifndef SYSTEMZTARGETMACHINE_H
16 #define SYSTEMZTARGETMACHINE_H
17 
18 #include "SystemZFrameLowering.h"
19 #include "SystemZISelLowering.h"
20 #include "SystemZInstrInfo.h"
21 #include "SystemZRegisterInfo.h"
22 #include "SystemZSubtarget.h"
24 #include "llvm/IR/DataLayout.h"
27 
28 namespace llvm {
29 
31  SystemZSubtarget Subtarget;
32  const DataLayout DL;
33  SystemZInstrInfo InstrInfo;
34  SystemZTargetLowering TLInfo;
36  SystemZFrameLowering FrameLowering;
37 
38 public:
43 
44  // Override TargetMachine.
46  return &FrameLowering;
47  }
48  virtual const SystemZInstrInfo *getInstrInfo() const LLVM_OVERRIDE {
49  return &InstrInfo;
50  }
52  return &Subtarget;
53  }
54  virtual const DataLayout *getDataLayout() const LLVM_OVERRIDE {
55  return &DL;
56  }
58  return &InstrInfo.getRegisterInfo();
59  }
61  return &TLInfo;
62  }
65  return &TSInfo;
66  }
67 
68  // Override LLVMTargetMachine
69  virtual TargetPassConfig *createPassConfig(PassManagerBase &PM) LLVM_OVERRIDE;
70 };
71 
72 } // end namespace llvm
73 
74 #endif
virtual const SystemZInstrInfo * getInstrInfo() const LLVM_OVERRIDE
virtual const TargetFrameLowering * getFrameLowering() const LLVM_OVERRIDE
const SystemZRegisterInfo & getRegisterInfo() const
virtual const DataLayout * getDataLayout() const LLVM_OVERRIDE
virtual const SystemZRegisterInfo * getRegisterInfo() const LLVM_OVERRIDE
virtual const TargetSelectionDAGInfo * getSelectionDAGInfo() const LLVM_OVERRIDE
virtual const SystemZSubtarget * getSubtargetImpl() const LLVM_OVERRIDE
SystemZTargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
virtual const SystemZTargetLowering * getTargetLowering() const LLVM_OVERRIDE
virtual TargetPassConfig * createPassConfig(PassManagerBase &PM) LLVM_OVERRIDE
#define LLVM_OVERRIDE
Definition: Compiler.h:155