X86.h revision 9826bdb7d829b2e48669a3ab69b0e6286f524001
1//===-- X86.h - Top-level interface for X86 representation ------*- C++ -*-===// 2// 3// This file contains the entry points for global functions defined in the x86 4// target library, as used by the LLVM JIT. 5// 6//===----------------------------------------------------------------------===// 7 8#ifndef TARGET_X86_H 9#define TARGET_X86_H 10 11#include <iosfwd> 12class TargetMachine; 13class FunctionPass; 14 15/// createX86SimpleInstructionSelector - This pass converts an LLVM function 16/// into a machine code representation in a very simple peep-hole fashion. The 17/// generated code sucks but the implementation is nice and simple. 18/// 19FunctionPass *createX86SimpleInstructionSelector(TargetMachine &TM); 20 21/// createX86PatternInstructionSelector - This pass converts an LLVM function 22/// into a machine code representation using pattern matching and a machine 23/// description file. 24/// 25FunctionPass *createX86PatternInstructionSelector(TargetMachine &TM); 26 27/// createX86PeepholeOptimizer - Create a pass to perform X86 specific peephole 28/// optimizations. 29/// 30FunctionPass *createX86PeepholeOptimizerPass(); 31 32/// createX86FloatingPointStackifierPass - This function returns a pass which 33/// converts floating point register references and pseudo instructions into 34/// floating point stack references and physical instructions. 35/// 36FunctionPass *createX86FloatingPointStackifierPass(); 37 38/// createX86CodePrinterPass - Returns a pass that prints the X86 39/// assembly code for a MachineFunction to the given output stream, 40/// using the given target machine description. This should work 41/// regardless of whether the function is in SSA form. 42/// 43FunctionPass *createX86CodePrinterPass(std::ostream &o,TargetMachine &tm); 44 45/// createX86EmitCodeToMemory - Returns a pass that converts a register 46/// allocated function into raw machine code in a dynamically 47/// allocated chunk of memory. 48/// 49FunctionPass *createEmitX86CodeToMemory(); 50 51// Defines symbolic names for X86 registers. This defines a mapping from 52// register name to register number. 53// 54#include "X86GenRegisterNames.inc" 55 56// Defines symbolic names for the X86 instructions. 57// 58#include "X86GenInstrNames.inc" 59 60#endif 61