llvm.org GIT mirror llvm / release_24 lib / Target / X86 / X86.h
release_24

Tree @release_24 (Download .tar.gz)

X86.h @release_24

7261408
0e0a7a4
856ba76
 
4ee451d
 
0e0a7a4
856ba76
7261408
 
 
 
 
 
 
 
 
 
d0fde30
 
 
c4c6257
9826bdb
81b6ed7
cb37188
7261408
dbdbf0c
 
 
e50794a
95cdb36
31ad5dd
 
 
f2ab412
9826bdb
b4f68ed
de420ae
 
81b6ed7
b4f68ed
cb37188
7261408
81b6ed7
 
55fc280
 
81b6ed7
9826bdb
 
 
7261408
9826bdb
7261408
856914f
 
 
 
 
95cdb36
 
8320035
 
 
 
 
8d44ba8
 
 
7261408
 
//===-- X86.h - Top-level interface for X86 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 x86
// target library, as used by the LLVM JIT.
//
//===----------------------------------------------------------------------===//

#ifndef TARGET_X86_H
#define TARGET_X86_H

#include <iosfwd>

namespace llvm {

class X86TargetMachine;
class FunctionPass;
class MachineCodeEmitter;
class raw_ostream;

/// createX86ISelDag - This pass converts a legalized DAG into a 
/// X86-specific DAG, ready for instruction scheduling.
///
FunctionPass *createX86ISelDag(X86TargetMachine &TM, bool Fast);

/// createX86FloatingPointStackifierPass - This function returns a pass which
/// converts floating point register references and pseudo instructions into
/// floating point stack references and physical instructions.
///
FunctionPass *createX86FloatingPointStackifierPass();

/// createX86CodePrinterPass - Returns a pass that prints the X86
/// assembly code for a MachineFunction to the given output stream,
/// using the given target machine description.
///
FunctionPass *createX86CodePrinterPass(raw_ostream &o, X86TargetMachine &tm);

/// createX86CodeEmitterPass - Return a pass that emits the collected X86 code
/// to the specified MCE object.
FunctionPass *createX86CodeEmitterPass(X86TargetMachine &TM,
                                       MachineCodeEmitter &MCE);

/// createX86EmitCodeToMemory - Returns a pass that converts a register
/// allocated function into raw machine code in a dynamically
/// allocated chunk of memory.
///
FunctionPass *createEmitX86CodeToMemory();

/// createX86MaxStackAlignmentCalculatorPass - This function returns a pass which
/// calculates maximal stack alignment required for function
///
FunctionPass *createX86MaxStackAlignmentCalculatorPass();

} // End llvm namespace

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

// Defines symbolic names for the X86 instructions.
//
#include "X86GenInstrNames.inc"

#endif