blob: 9c758fd5ca7d104caae2e1493267f46c960401be [file] [log] [blame]
Duraid Madina91ed0a12005-03-17 18:17:03 +00001//===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===//
2// The LLVM Compiler Infrastructure
3//
Chris Lattnerf3ebc3f2007-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 Brukman89b8c8d2005-04-21 23:13:11 +00006//
Duraid Madina91ed0a12005-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
Bill Wendling026e5d72009-04-29 23:29:43 +000017#include "llvm/Target/TargetMachine.h"
18
Duraid Madina91ed0a12005-03-17 18:17:03 +000019namespace llvm {
20
Evan Cheng2dd2c652006-03-13 23:20:37 +000021class IA64TargetMachine;
Duraid Madina91ed0a12005-03-17 18:17:03 +000022class FunctionPass;
Owen Anderson93719642008-08-21 00:14:44 +000023class raw_ostream;
Duraid Madina91ed0a12005-03-17 18:17:03 +000024
Duraid Madinaf221c262005-10-28 17:46:35 +000025/// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM
26/// function into IA64 machine code in a sane, DAG->DAG transform.
27///
Evan Cheng2dd2c652006-03-13 23:20:37 +000028FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM);
Duraid Madinaf221c262005-10-28 17:46:35 +000029
Duraid Madina5ea06a92006-01-25 02:23:38 +000030/// createIA64BundlingPass - This pass adds stop bits and bundles
31/// instructions.
Duraid Madina91ed0a12005-03-17 18:17:03 +000032///
Evan Cheng2dd2c652006-03-13 23:20:37 +000033FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM);
Duraid Madina91ed0a12005-03-17 18:17:03 +000034
35/// createIA64CodePrinterPass - Returns a pass that prints the IA64
36/// assembly code for a MachineFunction to the given output stream,
37/// using the given target machine description. This should work
38/// regardless of whether the function is in SSA form.
39///
Bill Wendlingc5437ea2009-02-24 08:30:20 +000040FunctionPass *createIA64CodePrinterPass(raw_ostream &o,
41 IA64TargetMachine &tm,
Bill Wendling026e5d72009-04-29 23:29:43 +000042 bool verbose);
Duraid Madina91ed0a12005-03-17 18:17:03 +000043
44} // End llvm namespace
45
46// Defines symbolic names for IA64 registers. This defines a mapping from
47// register name to register number.
48//
49#include "IA64GenRegisterNames.inc"
50
51// Defines symbolic names for the IA64 instructions.
52//
53#include "IA64GenInstrNames.inc"
54
55#endif
56
57