blob: 8fe7d9c1d62c086e27c3065725e2a1aa95f48f97 [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//
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.
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
21class TargetMachine;
22class FunctionPass;
23class IntrinsicLowering;
24
Duraid Madinaf2db9b82005-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///
28FunctionPass *createIA64DAGToDAGInstructionSelector(TargetMachine &TM);
29
Duraid Madina9b9d45f2005-03-17 18:17:03 +000030/// createIA64PatternInstructionSelector - This pass converts an LLVM function
31/// into a machine code representation in a more aggressive way.
32///
33FunctionPass *createIA64PatternInstructionSelector(TargetMachine &TM);
34
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///
40FunctionPass *createIA64CodePrinterPass(std::ostream &o,TargetMachine &tm);
41
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