blob: 88960b9cc601d380a5ec94eae3ae779ba0489305 [file] [log] [blame]
Anton Korobeynikov4403b932009-07-16 13:27:25 +00001//=-- 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.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_TARGET_SystemZ_H
16#define LLVM_TARGET_SystemZ_H
17
Evan Chengc60f9b72011-07-14 20:59:42 +000018#include "MCTargetDesc/SystemZMCTargetDesc.h"
Anton Korobeynikov4403b932009-07-16 13:27:25 +000019#include "llvm/Target/TargetMachine.h"
20
21namespace llvm {
22 class SystemZTargetMachine;
23 class FunctionPass;
Anton Korobeynikov7df84622009-07-16 14:36:52 +000024 class formatted_raw_ostream;
Anton Korobeynikov4403b932009-07-16 13:27:25 +000025
Anton Korobeynikov4ec3e5f2009-07-16 13:52:31 +000026 namespace SystemZCC {
27 // SystemZ specific condition code. These correspond to SYSTEMZ_*_COND in
28 // SystemZInstrInfo.td. They must be kept in synch.
29 enum CondCodes {
Anton Korobeynikov10c086c2009-07-16 14:19:54 +000030 O = 0,
31 H = 1,
32 NLE = 2,
33 L = 3,
34 NHE = 4,
35 LH = 5,
36 NE = 6,
37 E = 7,
38 NLH = 8,
39 HE = 9,
40 NL = 10,
41 LE = 11,
42 NH = 12,
Anton Korobeynikovae46db82009-07-16 14:32:19 +000043 NO = 13,
44 INVALID = -1
Anton Korobeynikov4ec3e5f2009-07-16 13:52:31 +000045 };
46 }
47
Anton Korobeynikov4403b932009-07-16 13:27:25 +000048 FunctionPass *createSystemZISelDag(SystemZTargetMachine &TM,
49 CodeGenOpt::Level OptLevel);
Anton Korobeynikov4ec3e5f2009-07-16 13:52:31 +000050
Anton Korobeynikov4403b932009-07-16 13:27:25 +000051} // end namespace llvm;
Anton Korobeynikov4403b932009-07-16 13:27:25 +000052#endif