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

Tree @release_20 (Download .tar.gz)

X86.h @release_20

7261408
0e0a7a4
856ba76
 
 
 
0e0a7a4
856ba76
7261408
 
 
 
 
 
 
 
 
 
d0fde30
 
 
c4c6257
1911fd4
9826bdb
81b6ed7
7261408
dbdbf0c
 
 
e50794a
95cdb36
31ad5dd
 
 
f2ab412
9826bdb
b4f68ed
de420ae
 
81b6ed7
b4f68ed
c4c6257
7261408
81b6ed7
 
55fc280
 
81b6ed7
9826bdb
 
 
7261408
9826bdb
7261408
95cdb36
 
8320035
 
 
 
 
8d44ba8
 
 
7261408
 
//===-- X86.h - Top-level interface for X86 representation ------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file was developed by the LLVM research group and 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 FunctionPassManager;
class FunctionPass;
class MachineCodeEmitter;

/// 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(std::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();

} // 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