LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::X86TargetMachine Class Reference

#include <X86TargetMachine.h>

Inheritance diagram for llvm::X86TargetMachine:

Inheritance graph
[legend]
Collaboration diagram for llvm::X86TargetMachine:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 X86TargetMachine (const Module &M, IntrinsicLowering *IL)
virtual const X86InstrInfo * getInstrInfo () const
virtual const TargetFrameInfo * getFrameInfo () const
virtual TargetJITInfo * getJITInfo ()
virtual const MRegisterInfo * getRegisterInfo () const
virtual bool addPassesToEmitMachineCode (FunctionPassManager &PM, MachineCodeEmitter &MCE)
virtual bool addPassesToEmitAssembly (PassManager &PM, std::ostream &Out)

Static Public Member Functions

static unsigned getModuleMatchQuality (const Module &M)
static unsigned getJITMatchQuality ()

Detailed Description

Definition at line 26 of file X86TargetMachine.h.


Constructor & Destructor Documentation

X86TargetMachine::X86TargetMachine (  const Module &  M,
IntrinsicLowering *  IL
) 
 

X86TargetMachine ctor - Create an ILP32 architecture model

Definition at line 84 of file X86TargetMachine.cpp.


Member Function Documentation

bool X86TargetMachine::addPassesToEmitAssembly (  PassManager &  PM,
std::ostream &  Out
)  [virtual]
 

addPassesToEmitAssembly - Add passes to the specified pass manager to get assembly langage code emitted. Typically this will involve several steps of code generation. This method should return true if assembly emission is not supported.

Reimplemented from llvm::TargetMachine.

Definition at line 93 of file X86TargetMachine.cpp.

References llvm::PassManager::add(), llvm::createLowerGCPass(), llvm::createLowerInvokePass(), llvm::createLowerSwitchPass(), llvm::createMachineCodeDeleter(), llvm::createMachineFunctionPrinterPass(), llvm::createPrologEpilogCodeInserter(), llvm::createRegisterAllocator(), llvm::createUnreachableBlockEliminationPass(), llvm::createX86CodePrinterPass(), llvm::createX86FloatingPointStackifierPass(), llvm::createX86PeepholeOptimizerPass(), llvm::createX86SimpleInstructionSelector(), llvm::createX86SSAPeepholeOptimizerPass(), DisableOutput, NoSSAPeephole, and llvm::PrintMachineCode.

bool X86TargetMachine::addPassesToEmitMachineCode (  FunctionPassManager &  PM,
MachineCodeEmitter &  MCE
)  [virtual]
 

addPassesToEmitMachineCode - Add passes to the specified pass manager to get machine code emitted. This uses a MachineCodeEmitter object to handle actually outputting the machine code and resolving things like the address of functions. This method should returns true if machine code emission is not supported.

Reimplemented from llvm::TargetMachine.

Definition at line 76 of file X86CodeEmitter.cpp.

References llvm::FunctionPassManager::add(), and llvm::createMachineCodeDeleter().

virtual const TargetFrameInfo* llvm::X86TargetMachine::getFrameInfo (   )  const [inline, virtual]
 

Reimplemented from llvm::TargetMachine.

Definition at line 34 of file X86TargetMachine.h.

virtual const X86InstrInfo* llvm::X86TargetMachine::getInstrInfo (   )  const [inline, virtual]
 

Reimplemented from llvm::TargetMachine.

Definition at line 33 of file X86TargetMachine.h.

virtual TargetJITInfo* llvm::X86TargetMachine::getJITInfo (   )  [inline, virtual]
 

getJITInfo - If this target supports a JIT, return information for it, otherwise return null.

Reimplemented from llvm::TargetMachine.

Definition at line 35 of file X86TargetMachine.h.

unsigned X86TargetMachine::getJITMatchQuality (   )  [static]
 

getJITMatchQuality - This static method should be implemented by targets that provide JIT capabilities to indicate how suitable they are for execution on the current host. If a value of 0 is returned, the target will not be used unless an explicit -march option is used.

Reimplemented from llvm::TargetMachine.

Definition at line 63 of file X86TargetMachine.cpp.

Referenced by getModuleMatchQuality().

unsigned X86TargetMachine::getModuleMatchQuality (  const Module &  M  )  [static]
 

getModuleMatchQuality - This static method should be implemented by targets to indicate how closely they match the specified module. This is used by the LLC tool to determine which target to use when an explicit -march option is not specified. If a target returns zero, it will never be chosen without an explicit -march option.

Reimplemented from llvm::TargetMachine.

Definition at line 71 of file X86TargetMachine.cpp.

References llvm::Module::AnyEndianness, llvm::Module::AnyPointerSize, llvm::Module::getEndianness(), getJITMatchQuality(), llvm::Module::getPointerSize(), llvm::Module::LittleEndian, and llvm::Module::Pointer32.

virtual const MRegisterInfo* llvm::X86TargetMachine::getRegisterInfo (   )  const [inline, virtual]
 

getRegisterInfo - If register information is available, return it. If not, return null. This is kept separate from RegInfo until RegInfo has details of graph coloring register allocation removed from it.

Reimplemented from llvm::TargetMachine.

Definition at line 36 of file X86TargetMachine.h.

References llvm::X86InstrInfo::getRegisterInfo().


The documentation for this class was generated from the following files: