LLVM API Documentation
00001 //===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===// 00002 // The LLVM Compiler Infrastructure 00003 // 00004 // This file was developed by Duraid Madina and is distributed under the 00005 // University of Illinois Open Source License. See LICENSE.TXT for details. 00006 // 00007 //===----------------------------------------------------------------------===// 00008 // 00009 // This file contains the entry points for global functions defined in the IA64 00010 // target library, as used by the LLVM JIT. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef TARGET_IA64_H 00015 #define TARGET_IA64_H 00016 00017 #include <iosfwd> 00018 00019 namespace llvm { 00020 00021 class IA64TargetMachine; 00022 class FunctionPass; 00023 class IntrinsicLowering; 00024 00025 /// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM 00026 /// function into IA64 machine code in a sane, DAG->DAG transform. 00027 /// 00028 FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM); 00029 00030 /// createIA64BundlingPass - This pass adds stop bits and bundles 00031 /// instructions. 00032 /// 00033 FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM); 00034 00035 /// createIA64CodePrinterPass - Returns a pass that prints the IA64 00036 /// assembly code for a MachineFunction to the given output stream, 00037 /// using the given target machine description. This should work 00038 /// regardless of whether the function is in SSA form. 00039 /// 00040 FunctionPass *createIA64CodePrinterPass(std::ostream &o, IA64TargetMachine &tm); 00041 00042 } // End llvm namespace 00043 00044 // Defines symbolic names for IA64 registers. This defines a mapping from 00045 // register name to register number. 00046 // 00047 #include "IA64GenRegisterNames.inc" 00048 00049 // Defines symbolic names for the IA64 instructions. 00050 // 00051 #include "IA64GenInstrNames.inc" 00052 00053 #endif 00054 00055