LLVM API Documentation
#include <ARMTargetMachine.h>
Public Member Functions | |
| ARMTargetMachine (const Module &M, const std::string &FS, bool isThumb=false) | |
| virtual const ARMInstrInfo * | getInstrInfo () const |
| virtual const ARMFrameInfo * | getFrameInfo () const |
| virtual ARMJITInfo * | getJITInfo () |
| virtual const ARMRegisterInfo * | getRegisterInfo () const |
| virtual const TargetData * | getTargetData () const |
| virtual const ARMSubtarget * | getSubtargetImpl () const |
| virtual ARMTargetLowering * | getTargetLowering () const |
| virtual const TargetAsmInfo * | createTargetAsmInfo () 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 | |
| static void | registerAsmPrinter (AsmPrinterCtorFn F) |
| static unsigned | getModuleMatchQuality (const Module &M) |
| static unsigned | getJITMatchQuality () |
Protected Types | |
| typedef FunctionPass *(* | AsmPrinterCtorFn )(raw_ostream &o, ARMTargetMachine &tm) |
Static Protected Attributes | |
| static AsmPrinterCtorFn | AsmPrinterCtor = 0 |
Definition at line 30 of file ARMTargetMachine.h.
typedef FunctionPass*(* llvm::ARMTargetMachine::AsmPrinterCtorFn)(raw_ostream &o, ARMTargetMachine &tm) [protected] |
| ARMTargetMachine::ARMTargetMachine | ( | const Module & | M, | |
| const std::string & | FS, | |||
| bool | isThumb = false | |||
| ) |
TargetMachine ctor - Create an ARM architecture model.
Definition at line 78 of file ARMTargetMachine.cpp.
References DataLayout, llvm::TargetMachine::getRelocationModel(), and Subtarget.
| virtual const ARMInstrInfo* llvm::ARMTargetMachine::getInstrInfo | ( | ) | const [inline, virtual] |
| virtual const ARMFrameInfo* llvm::ARMTargetMachine::getFrameInfo | ( | ) | const [inline, virtual] |
| 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 51 of file ARMTargetMachine.h.
| 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 52 of file ARMTargetMachine.h.
References llvm::ARMInstrInfo::getRegisterInfo().
| virtual const TargetData* llvm::ARMTargetMachine::getTargetData | ( | ) | const [inline, virtual] |
| 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 56 of file ARMTargetMachine.h.
| virtual ARMTargetLowering* llvm::ARMTargetMachine::getTargetLowering | ( | ) | const [inline, virtual] |
| static void llvm::ARMTargetMachine::registerAsmPrinter | ( | AsmPrinterCtorFn | F | ) | [inline, 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 106 of file ARMTargetMachine.cpp.
References llvm::Module::AnyEndianness, llvm::Module::AnyPointerSize, llvm::Module::getEndianness(), getJITMatchQuality(), llvm::Module::getPointerSize(), llvm::Module::getTargetTriple(), llvm::Module::LittleEndian, and llvm::Module::Pointer32.
| 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 99 of file ARMTargetMachine.cpp.
Referenced by getModuleMatchQuality().
| const TargetAsmInfo * ARMTargetMachine::createTargetAsmInfo | ( | ) | const [virtual] |
createTargetAsmInfo - Create a new instance of target specific asm information.
Reimplemented from llvm::TargetMachine.
Definition at line 125 of file ARMTargetMachine.cpp.
References llvm::ARMSubtarget::isDarwin, llvm::ARMSubtarget::isELF, and llvm::ARMSubtarget::TargetType.
| bool ARMTargetMachine::addInstSelector | ( | PassManagerBase & | , | |
| bool | ||||
| ) | [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 138 of file ARMTargetMachine.cpp.
References llvm::PassManagerBase::add(), and llvm::createARMISelDag().
| bool ARMTargetMachine::addPreEmitPass | ( | PassManagerBase & | , | |
| bool | ||||
| ) | [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 143 of file ARMTargetMachine.cpp.
References llvm::PassManagerBase::add(), llvm::createARMConstantIslandPass(), llvm::createARMLoadStoreOptimizationPass(), llvm::createIfConverterPass(), DisableIfConversion, DisableLdStOpti, and llvm::ARMSubtarget::isThumb().
| bool ARMTargetMachine::addAssemblyEmitter | ( | PassManagerBase & | , | |
| bool | , | |||
| raw_ostream & | ||||
| ) | [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 155 of file ARMTargetMachine.cpp.
References llvm::PassManagerBase::add(), and AsmPrinterCtor.
| bool ARMTargetMachine::addCodeEmitter | ( | PassManagerBase & | , | |
| bool | , | |||
| bool | , | |||
| MachineCodeEmitter & | ||||
| ) | [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 166 of file ARMTargetMachine.cpp.
References llvm::PassManagerBase::add(), AsmPrinterCtor, llvm::createARMCodeEmitterPass(), llvm::Reloc::Default, llvm::errs(), llvm::TargetMachine::setRelocationModel(), and llvm::Reloc::Static.
| bool ARMTargetMachine::addSimpleCodeEmitter | ( | PassManagerBase & | , | |
| bool | , | |||
| bool | , | |||
| MachineCodeEmitter & | ||||
| ) | [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 183 of file ARMTargetMachine.cpp.
References llvm::PassManagerBase::add(), AsmPrinterCtor, llvm::createARMCodeEmitterPass(), and llvm::errs().
ARMTargetMachine::AsmPrinterCtorFn ARMTargetMachine::AsmPrinterCtor = 0 [static, protected] |
Definition at line 44 of file ARMTargetMachine.h.
Referenced by addAssemblyEmitter(), addCodeEmitter(), addSimpleCodeEmitter(), and registerAsmPrinter().