blob: 46c26f0a5aa3586d1c6226e7701e30741091e6ee [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001//===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===//
2// The LLVM Compiler Infrastructure
3//
Chris Lattner081ce942007-12-29 20:36:04 +00004// This file is distributed under the University of Illinois Open Source
5// License. See LICENSE.TXT for details.
Dan Gohmanf17a25c2007-07-18 16:29:46 +00006//
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
Dan Gohmanf17a25c2007-07-18 16:29:46 +000017namespace llvm {
18
19class IA64TargetMachine;
20class FunctionPass;
Owen Anderson847b99b2008-08-21 00:14:44 +000021class raw_ostream;
Dan Gohmanf17a25c2007-07-18 16:29:46 +000022
23/// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM
24/// function into IA64 machine code in a sane, DAG->DAG transform.
25///
26FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM);
27
28/// createIA64BundlingPass - This pass adds stop bits and bundles
29/// instructions.
30///
31FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM);
32
33/// createIA64CodePrinterPass - Returns a pass that prints the IA64
34/// assembly code for a MachineFunction to the given output stream,
35/// using the given target machine description. This should work
36/// regardless of whether the function is in SSA form.
37///
Bill Wendling4f405312009-02-24 08:30:20 +000038FunctionPass *createIA64CodePrinterPass(raw_ostream &o,
39 IA64TargetMachine &tm,
Bill Wendling58ed5d22009-04-29 00:15:41 +000040 unsigned OptLevel, bool verbose);
Dan Gohmanf17a25c2007-07-18 16:29:46 +000041
42} // End llvm namespace
43
44// Defines symbolic names for IA64 registers. This defines a mapping from
45// register name to register number.
46//
47#include "IA64GenRegisterNames.inc"
48
49// Defines symbolic names for the IA64 instructions.
50//
51#include "IA64GenInstrNames.inc"
52
53#endif
54
55