blob: b65af7714f2ca0d1e298d3c6f46c6aa12a0d3826 [file] [log] [blame]
Duraid Madina9b9d45f2005-03-17 18:17:03 +00001//===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===//
2// The LLVM Compiler Infrastructure
3//
Chris Lattner4ee451d2007-12-29 20:36:04 +00004// This file is distributed under the University of Illinois Open Source
5// License. See LICENSE.TXT for details.
Misha Brukman4633f1c2005-04-21 23:13:11 +00006//
Duraid Madina9b9d45f2005-03-17 18:17:03 +00007//===----------------------------------------------------------------------===//
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
19namespace llvm {
20
Evan Chengc4c62572006-03-13 23:20:37 +000021class IA64TargetMachine;
Duraid Madina9b9d45f2005-03-17 18:17:03 +000022class FunctionPass;
Duraid Madina9b9d45f2005-03-17 18:17:03 +000023
Duraid Madinaf2db9b82005-10-28 17:46:35 +000024/// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM
25/// function into IA64 machine code in a sane, DAG->DAG transform.
26///
Evan Chengc4c62572006-03-13 23:20:37 +000027FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM);
Duraid Madinaf2db9b82005-10-28 17:46:35 +000028
Duraid Madinabadf0d92006-01-25 02:23:38 +000029/// createIA64BundlingPass - This pass adds stop bits and bundles
30/// instructions.
Duraid Madina9b9d45f2005-03-17 18:17:03 +000031///
Evan Chengc4c62572006-03-13 23:20:37 +000032FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM);
Duraid Madina9b9d45f2005-03-17 18:17:03 +000033
34/// createIA64CodePrinterPass - Returns a pass that prints the IA64
35/// assembly code for a MachineFunction to the given output stream,
36/// using the given target machine description. This should work
37/// regardless of whether the function is in SSA form.
38///
Evan Chengc4c62572006-03-13 23:20:37 +000039FunctionPass *createIA64CodePrinterPass(std::ostream &o, IA64TargetMachine &tm);
Duraid Madina9b9d45f2005-03-17 18:17:03 +000040
41} // End llvm namespace
42
43// Defines symbolic names for IA64 registers. This defines a mapping from
44// register name to register number.
45//
46#include "IA64GenRegisterNames.inc"
47
48// Defines symbolic names for the IA64 instructions.
49//
50#include "IA64GenInstrNames.inc"
51
52#endif
53
54