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::ARMTargetMachine Class Reference

#include <ARMTargetMachine.h>

Inheritance diagram for llvm::ARMTargetMachine:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ARMTargetMachine (const Module &M, const std::string &FS, bool isThumb=false)
virtual const ARMInstrInfogetInstrInfo () const
virtual const ARMFrameInfogetFrameInfo () const
virtual ARMJITInfogetJITInfo ()
virtual const ARMRegisterInfogetRegisterInfo () const
virtual const TargetDatagetTargetData () const
virtual const ARMSubtargetgetSubtargetImpl () const
virtual ARMTargetLoweringgetTargetLowering () const
virtual const TargetAsmInfocreateTargetAsmInfo () const
virtual bool addInstSelector (PassManagerBase &PM, bool Fast)
 Target-Independent Code Generator Pass Configuration Options.
virtual bool addPreEmitPass (PassManagerBase &PM, bool Fast)
virtual bool addAssemblyEmitter (PassManagerBase &PM, bool Fast, raw_ostream &Out)
virtual bool addCodeEmitter (PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE)
virtual bool addSimpleCodeEmitter (PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE)

Static Public Member Functions

void registerAsmPrinter (AsmPrinterCtorFn F)
unsigned getModuleMatchQuality (const Module &M)
unsigned getJITMatchQuality ()

Protected Types

typedef FunctionPass *(* AsmPrinterCtorFn )(raw_ostream &o, ARMTargetMachine &tm)

Static Protected Attributes

AsmPrinterCtorFn AsmPrinterCtor = 0

Member Typedef Documentation

typedef FunctionPass*(* llvm::ARMTargetMachine::AsmPrinterCtorFn)(raw_ostream &o, ARMTargetMachine &tm) [protected]
 

Definition at line 41 of file ARMTargetMachine.h.


Constructor & Destructor Documentation

ARMTargetMachine::ARMTargetMachine const Module M,
const std::string &  FS,
bool  isThumb = false
 

TargetMachine ctor - Create an ARM architecture model.

Definition at line 71 of file ARMTargetMachine.cpp.


Member Function Documentation

bool ARMTargetMachine::addAssemblyEmitter PassManagerBase PM,
bool  Fast,
raw_ostream Out
[virtual]
 

addAssemblyEmitter - This pass should be overridden by the target to add the asmprinter, if asm emission is supported. If this is not supported, 'true' should be returned.

Reimplemented from llvm::LLVMTargetMachine.

Definition at line 146 of file ARMTargetMachine.cpp.

References llvm::PassManagerBase::add(), and AsmPrinterCtor.

bool ARMTargetMachine::addCodeEmitter PassManagerBase PM,
bool  Fast,
bool  DumpAsm,
MachineCodeEmitter MCE
[virtual]
 

addCodeEmitter - This pass should be overridden by the target to add a code emitter, if supported. If this is not supported, 'true' should be returned. If DumpAsm is true, the generated assembly is printed to cerr.

Reimplemented from llvm::LLVMTargetMachine.

Definition at line 157 of file ARMTargetMachine.cpp.

References llvm::PassManagerBase::add(), AsmPrinterCtor, llvm::createARMCodeEmitterPass(), llvm::errs(), and llvm::TargetMachine::setRelocationModel().

bool ARMTargetMachine::addInstSelector PassManagerBase PM,
bool  Fast
[virtual]
 

Target-Independent Code Generator Pass Configuration Options.

addInstSelector - This method should add any "last minute" LLVM->LLVM passes, then install an instruction selector pass, which converts from LLVM code to machine instructions.

Reimplemented from llvm::LLVMTargetMachine.

Definition at line 129 of file ARMTargetMachine.cpp.

References llvm::PassManagerBase::add(), and llvm::createARMISelDag().

bool ARMTargetMachine::addPreEmitPass PassManagerBase PM,
bool  Fast
[virtual]
 

addPreEmitPass - This pass may be implemented by targets that want to run passes immediately before machine code is emitted. This should return true if -print-machineinstrs should print out the code after the passes.

Reimplemented from llvm::LLVMTargetMachine.

Definition at line 134 of file ARMTargetMachine.cpp.

References llvm::PassManagerBase::add(), llvm::createARMConstantIslandPass(), llvm::createARMLoadStoreOptimizationPass(), llvm::createIfConverterPass(), DisableIfConversion, DisableLdStOpti, and llvm::ARMSubtarget::isThumb().

bool ARMTargetMachine::addSimpleCodeEmitter PassManagerBase PM,
bool  Fast,
bool  DumpAsm,
MachineCodeEmitter MCE
[virtual]
 

addSimpleCodeEmitter - This pass should be overridden by the target to add a code emitter (without setting flags), if supported. If this is not supported, 'true' should be returned. If DumpAsm is true, the generated assembly is printed to cerr.

Reimplemented from llvm::LLVMTargetMachine.

Definition at line 173 of file ARMTargetMachine.cpp.

References llvm::PassManagerBase::add(), AsmPrinterCtor, llvm::createARMCodeEmitterPass(), and llvm::errs().

const TargetAsmInfo * ARMTargetMachine::createTargetAsmInfo  )  const [virtual]
 

createTargetAsmInfo - Create a new instance of target specific asm information.

Reimplemented from llvm::TargetMachine.

Definition at line 116 of file ARMTargetMachine.cpp.

References llvm::ARMSubtarget::TargetType.

virtual const ARMFrameInfo* llvm::ARMTargetMachine::getFrameInfo  )  const [inline, virtual]
 

Reimplemented from llvm::TargetMachine.

Definition at line 49 of file ARMTargetMachine.h.

virtual const ARMInstrInfo* llvm::ARMTargetMachine::getInstrInfo  )  const [inline, virtual]
 

Reimplemented from llvm::TargetMachine.

Definition at line 48 of file ARMTargetMachine.h.

virtual ARMJITInfo* llvm::ARMTargetMachine::getJITInfo  )  [inline, virtual]
 

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

Reimplemented from llvm::TargetMachine.

Definition at line 50 of file ARMTargetMachine.h.

unsigned ARMTargetMachine::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.

Reimplemented in llvm::ThumbTargetMachine.

Definition at line 90 of file ARMTargetMachine.cpp.

Referenced by getModuleMatchQuality().

unsigned ARMTargetMachine::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.

Reimplemented in llvm::ThumbTargetMachine.

Definition at line 97 of file ARMTargetMachine.cpp.

References Module::getEndianness(), getJITMatchQuality(), Module::getPointerSize(), and Module::getTargetTriple().

virtual const ARMRegisterInfo* llvm::ARMTargetMachine::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 51 of file ARMTargetMachine.h.

virtual const ARMSubtarget* llvm::ARMTargetMachine::getSubtargetImpl  )  const [inline, virtual]
 

getSubtargetImpl - virtual method implemented by subclasses that returns a reference to that target's TargetSubtarget-derived member variable.

Reimplemented from llvm::TargetMachine.

Definition at line 55 of file ARMTargetMachine.h.

virtual const TargetData* llvm::ARMTargetMachine::getTargetData  )  const [inline, virtual]
 

Reimplemented from llvm::TargetMachine.

Definition at line 54 of file ARMTargetMachine.h.

virtual ARMTargetLowering* llvm::ARMTargetMachine::getTargetLowering  )  const [inline, virtual]
 

Reimplemented from llvm::TargetMachine.

Definition at line 56 of file ARMTargetMachine.h.

void llvm::ARMTargetMachine::registerAsmPrinter AsmPrinterCtorFn  F  )  [inline, static]
 

Definition at line 60 of file ARMTargetMachine.h.


Member Data Documentation

ARMTargetMachine::AsmPrinterCtorFn ARMTargetMachine::AsmPrinterCtor = 0 [static, protected]
 

Definition at line 36 of file ARMTargetMachine.cpp.

Referenced by addAssemblyEmitter(), addCodeEmitter(), and addSimpleCodeEmitter().


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


This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.