LLVM API Documentation

Public Member Functions | Protected Member Functions
llvm::LLVMTargetMachine Class Reference

#include <TargetMachine.h>

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

List of all members.

Public Member Functions

virtual void addAnalysisPasses (PassManagerBase &PM)
 Register analysis passes for this target with a pass manager.
virtual TargetPassConfigcreatePassConfig (PassManagerBase &PM)
virtual bool addPassesToEmitFile (PassManagerBase &PM, formatted_raw_ostream &Out, CodeGenFileType FileType, bool DisableVerify=true, AnalysisID StartAfter=0, AnalysisID StopAfter=0)
virtual bool addPassesToEmitMachineCode (PassManagerBase &PM, JITCodeEmitter &MCE, bool DisableVerify=true)
virtual bool addPassesToEmitMC (PassManagerBase &PM, MCContext *&Ctx, raw_ostream &OS, bool DisableVerify=true)
virtual bool addCodeEmitter (PassManagerBase &, JITCodeEmitter &)

Protected Member Functions

 LLVMTargetMachine (const Target &T, StringRef TargetTriple, StringRef CPU, StringRef FS, TargetOptions Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
void initAsmInfo ()

Detailed Description

LLVMTargetMachine - This class describes a target machine that is implemented with the LLVM target-independent code generator.

Definition at line 291 of file Target/TargetMachine.h.


Constructor & Destructor Documentation

LLVMTargetMachine::LLVMTargetMachine ( const Target T,
StringRef  TargetTriple,
StringRef  CPU,
StringRef  FS,
TargetOptions  Options,
Reloc::Model  RM,
CodeModel::Model  CM,
CodeGenOpt::Level  OL 
) [protected]

Member Function Documentation

void LLVMTargetMachine::addAnalysisPasses ( PassManagerBase PM) [virtual]

Register analysis passes for this target with a pass manager.

This registers target independent analysis passes.

Reimplemented from llvm::TargetMachine.

Reimplemented in llvm::PPCTargetMachine, llvm::X86TargetMachine, llvm::ARMBaseTargetMachine, and llvm::MipsTargetMachine.

Definition at line 85 of file LLVMTargetMachine.cpp.

References llvm::PassManagerBase::add(), llvm::createBasicTargetTransformInfoPass(), and llvm::TargetMachine::getTargetLowering().

virtual bool llvm::LLVMTargetMachine::addCodeEmitter ( PassManagerBase ,
JITCodeEmitter  
) [inline, 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.

Reimplemented in llvm::MipsTargetMachine, llvm::X86TargetMachine, llvm::PPCTargetMachine, and llvm::ARMBaseTargetMachine.

Definition at line 342 of file Target/TargetMachine.h.

Referenced by addPassesToEmitMachineCode().

bool LLVMTargetMachine::addPassesToEmitFile ( PassManagerBase PM,
formatted_raw_ostream Out,
CodeGenFileType  FileType,
bool  DisableVerify = true,
AnalysisID  StartAfter = 0,
AnalysisID  StopAfter = 0 
) [virtual]
bool LLVMTargetMachine::addPassesToEmitMachineCode ( PassManagerBase PM,
JITCodeEmitter JCE,
bool  DisableVerify = true 
) [virtual]

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

addPassesToEmitMachineCode - Add passes to the specified pass manager to get machine code emitted. This uses a JITCodeEmitter 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.

Reimplemented in llvm::NVPTXTargetMachine.

Definition at line 239 of file LLVMTargetMachine.cpp.

References addCodeEmitter(), and addPassesToGenerateCode().

bool LLVMTargetMachine::addPassesToEmitMC ( PassManagerBase PM,
MCContext *&  Ctx,
raw_ostream Out,
bool  DisableVerify = true 
) [virtual]
TargetPassConfig * LLVMTargetMachine::createPassConfig ( PassManagerBase PM) [virtual]

createPassConfig - Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.

createPassConfig - Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of CodeGen passes.

Targets may override this to extend TargetPassConfig.

Reimplemented in llvm::MipsTargetMachine, llvm::NVPTXTargetMachine, llvm::HexagonTargetMachine, llvm::MBlazeTargetMachine, llvm::X86TargetMachine, llvm::SystemZTargetMachine, llvm::PPCTargetMachine, llvm::AArch64TargetMachine, llvm::MSP430TargetMachine, llvm::AMDGPUTargetMachine, llvm::ARMBaseTargetMachine, llvm::XCoreTargetMachine, and llvm::SparcTargetMachine.

Definition at line 259 of file Passes.cpp.

Referenced by addPassesToGenerateCode().

void LLVMTargetMachine::initAsmInfo ( ) [protected]

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