Merge branch 'master' into systemz
[llvm/systemz.git] / lib / Target / SystemZ / SystemZ.h
blob88b7b02db2d1547ca7935d46fb13ed55aa649359
1 //=-- SystemZ.h - Top-level interface for SystemZ representation -*- 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 contains the entry points for global functions defined in
11 // the LLVM SystemZ backend.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_TARGET_SystemZ_H
16 #define LLVM_TARGET_SystemZ_H
18 #include "llvm/Target/TargetMachine.h"
20 namespace llvm {
21 class SystemZTargetMachine;
22 class FunctionPass;
23 class formatted_raw_ostream;
25 namespace SystemZCC {
26 // SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in
27 // SystemZInstrInfo.td. They must be kept in synch.
28 enum CondCodes {
29 O = 0,
30 H = 1,
31 NLE = 2,
32 L = 3,
33 NHE = 4,
34 LH = 5,
35 NE = 6,
36 E = 7,
37 NLH = 8,
38 HE = 9,
39 NL = 10,
40 LE = 11,
41 NH = 12,
42 NO = 13,
43 INVALID = -1
47 FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
48 CodeGenOpt::Level OptLevel);
49 FunctionPass *createSystemZCodePrinterPass(formatted_raw_ostream &o,
50 TargetMachine &tm,
51 bool verbose);
53 } // end namespace llvm;
55 // Defines symbolic names for SystemZ registers.
56 // This defines a mapping from register name to register number.
57 #include "SystemZGenRegisterNames.inc"
59 // Defines symbolic names for the SystemZ instructions.
60 #include "SystemZGenInstrNames.inc"
62 #endif