LLVM API Documentation
00001 //===-- IA64.h - Top-level interface for IA64 representation ------*- C++ -*-===// 00002 // The LLVM Compiler Infrastructure 00003 // 00004 // This file is distributed under the University of Illinois Open Source 00005 // 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 namespace llvm { 00018 00019 class IA64TargetMachine; 00020 class FunctionPass; 00021 class raw_ostream; 00022 00023 /// createIA64DAGToDAGInstructionSelector - This pass converts an LLVM 00024 /// function into IA64 machine code in a sane, DAG->DAG transform. 00025 /// 00026 FunctionPass *createIA64DAGToDAGInstructionSelector(IA64TargetMachine &TM); 00027 00028 /// createIA64BundlingPass - This pass adds stop bits and bundles 00029 /// instructions. 00030 /// 00031 FunctionPass *createIA64BundlingPass(IA64TargetMachine &TM); 00032 00033 /// createIA64CodePrinterPass - Returns a pass that prints the IA64 00034 /// assembly code for a MachineFunction to the given output stream, 00035 /// using the given target machine description. This should work 00036 /// regardless of whether the function is in SSA form. 00037 /// 00038 FunctionPass *createIA64CodePrinterPass(raw_ostream &o, IA64TargetMachine &tm); 00039 00040 } // End llvm namespace 00041 00042 // Defines symbolic names for IA64 registers. This defines a mapping from 00043 // register name to register number. 00044 // 00045 #include "IA64GenRegisterNames.inc" 00046 00047 // Defines symbolic names for the IA64 instructions. 00048 // 00049 #include "IA64GenInstrNames.inc" 00050 00051 #endif 00052 00053