]> CyberLeo.Net >> Repos - FreeBSD/releng/9.0.git/blob - contrib/llvm/lib/Target/Alpha/Alpha.h
Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
[FreeBSD/releng/9.0.git] / contrib / llvm / lib / Target / Alpha / Alpha.h
1 //===-- Alpha.h - Top-level interface for Alpha 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 the LLVM
11 // Alpha back-end.
12 //
13 //===----------------------------------------------------------------------===//
14
15 #ifndef TARGET_ALPHA_H
16 #define TARGET_ALPHA_H
17
18 #include "MCTargetDesc/AlphaMCTargetDesc.h"
19 #include "llvm/Target/TargetMachine.h"
20
21 namespace llvm {
22   namespace Alpha {
23     // These describe LDAx
24
25     static const int IMM_LOW  = -32768;
26     static const int IMM_HIGH = 32767;
27     static const int IMM_MULT = 65536;
28   }
29
30   class AlphaTargetMachine;
31   class FunctionPass;
32   class formatted_raw_ostream;
33
34   FunctionPass *createAlphaISelDag(AlphaTargetMachine &TM);
35   FunctionPass *createAlphaPatternInstructionSelector(TargetMachine &TM);
36   FunctionPass *createAlphaJITCodeEmitterPass(AlphaTargetMachine &TM,
37                                               JITCodeEmitter &JCE);
38   FunctionPass *createAlphaLLRPPass(AlphaTargetMachine &tm);
39   FunctionPass *createAlphaBranchSelectionPass();
40
41 } // end namespace llvm;
42
43 #endif