~ubuntu-branches/ubuntu/trusty/llvm-toolchain-snapshot/trusty-201310232150

« back to all changes in this revision

Viewing changes to lib/Target/SystemZ/SystemZTargetMachine.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-27 15:01:57 UTC
  • mfrom: (0.10.1) (0.9.1) (0.8.1) (0.7.1) (0.6.1) (0.5.2)
  • Revision ID: package-import@ubuntu.com-20130527150157-tdkrsjpuvht7v0qx
Tags: 1:3.4~svn182733-1~exp1
* New snapshot release (3.4 release)
* Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so
    to fix make the llvm-config-3.4 --libdir work (Closes: #708677)
  * Various packages rename to allow co installations:
    * libclang1 => libclang1-3.4
    * libclang1-dbg => libclang1-3.4-dbg
    * libclang-dev => libclang-3.4-dev
    * libclang-common-dev => libclang-common-3.4-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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"
 
23
#include "llvm/IR/DataLayout.h"
 
24
#include "llvm/Target/TargetFrameLowering.h"
 
25
#include "llvm/Target/TargetMachine.h"
 
26
#include "llvm/Target/TargetSelectionDAGInfo.h"
 
27
 
 
28
namespace llvm {
 
29
 
 
30
class SystemZTargetMachine : public LLVMTargetMachine {
 
31
  SystemZSubtarget        Subtarget;
 
32
  const DataLayout        DL;
 
33
  SystemZInstrInfo        InstrInfo;
 
34
  SystemZTargetLowering   TLInfo;
 
35
  TargetSelectionDAGInfo  TSInfo;
 
36
  SystemZFrameLowering    FrameLowering;
 
37
 
 
38
public:
 
39
  SystemZTargetMachine(const Target &T, StringRef TT, StringRef CPU,
 
40
                       StringRef FS, const TargetOptions &Options,
 
41
                       Reloc::Model RM, CodeModel::Model CM,
 
42
                       CodeGenOpt::Level OL);
 
43
 
 
44
  // Override TargetMachine.
 
45
  virtual const TargetFrameLowering *getFrameLowering() const LLVM_OVERRIDE {
 
46
    return &FrameLowering;
 
47
  }
 
48
  virtual const SystemZInstrInfo *getInstrInfo() const LLVM_OVERRIDE {
 
49
    return &InstrInfo;
 
50
  }
 
51
  virtual const SystemZSubtarget *getSubtargetImpl() const LLVM_OVERRIDE {
 
52
    return &Subtarget;
 
53
  }
 
54
  virtual const DataLayout *getDataLayout() const LLVM_OVERRIDE {
 
55
    return &DL;
 
56
  }
 
57
  virtual const SystemZRegisterInfo *getRegisterInfo() const LLVM_OVERRIDE {
 
58
    return &InstrInfo.getRegisterInfo();
 
59
  }
 
60
  virtual const SystemZTargetLowering *getTargetLowering() const LLVM_OVERRIDE {
 
61
    return &TLInfo;
 
62
  }
 
63
  virtual const TargetSelectionDAGInfo *getSelectionDAGInfo() const
 
64
    LLVM_OVERRIDE {
 
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