Mark some instructions as variable_ops, and PSEUDO_ALLOC as taking a GPR.
[oota-llvm.git] / lib / Target / IA64 / IA64.h
1 //===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===//
2 //                     The LLVM Compiler Infrastructure
3 //
4 // This file was developed by Duraid Madina and is distributed under the
5 // University of Illinois Open Source License. See LICENSE.TXT for details.
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file contains the entry points for global functions defined in the IA64
10 // target library, as used by the LLVM JIT.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef TARGET_IA64_H
15 #define TARGET_IA64_H
16
17 #include <iosfwd>
18
19 namespace llvm {
20
21 class TargetMachine;
22 class FunctionPass;
23 class IntrinsicLowering;
24
25 /// createIA64PatternInstructionSelector - This pass converts an LLVM function
26 /// into a machine code representation in a more aggressive way.
27 ///
28 FunctionPass *createIA64PatternInstructionSelector(TargetMachine &TM);
29
30 /// createIA64CodePrinterPass - Returns a pass that prints the IA64
31 /// assembly code for a MachineFunction to the given output stream,
32 /// using the given target machine description.  This should work
33 /// regardless of whether the function is in SSA form.
34 ///
35 FunctionPass *createIA64CodePrinterPass(std::ostream &o,TargetMachine &tm);
36
37 } // End llvm namespace
38
39 // Defines symbolic names for IA64 registers.  This defines a mapping from
40 // register name to register number.
41 //
42 #include "IA64GenRegisterNames.inc"
43
44 // Defines symbolic names for the IA64 instructions.
45 //
46 #include "IA64GenInstrNames.inc"
47
48 #endif
49
50