summaryrefslogtreecommitdiff
path: root/lib/Target/IA64/IA64.h
blob: b65af7714f2ca0d1e298d3c6f46c6aa12a0d3826 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains the entry points for global functions defined in the IA64
// target library, as used by the LLVM JIT.
//
//===----------------------------------------------------------------------===//

#ifndef TARGET_IA64_H
#define TARGET_IA64_H

#include <iosfwd>

namespace llvm {

class IA64TargetMachine;
class FunctionPass;

/// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM
/// function into IA64 machine code in a sane, DAG->DAG transform.
///
FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM);

/// createIA64BundlingPass - This pass adds stop bits and bundles
/// instructions.
///
FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM);

/// createIA64CodePrinterPass - Returns a pass that prints the IA64
/// assembly code for a MachineFunction to the given output stream,
/// using the given target machine description.  This should work
/// regardless of whether the function is in SSA form.
///
FunctionPass *createIA64CodePrinterPass(std::ostream &o, IA64TargetMachine &tm);

} // End llvm namespace

// Defines symbolic names for IA64 registers.  This defines a mapping from
// register name to register number.
//
#include "IA64GenRegisterNames.inc"

// Defines symbolic names for the IA64 instructions.
//
#include "IA64GenInstrNames.inc"

#endif