LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
llvm::HexagonAsmPrinter Class Reference

#include <HexagonAsmPrinter.h>

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

Public Member Functions

 HexagonAsmPrinter (TargetMachine &TM, MCStreamer &Streamer)
 
virtual const char * getPassName () const
 
bool isBlockOnlyReachableByFallthrough (const MachineBasicBlock *MBB) const
 
virtual void EmitInstruction (const MachineInstr *MI)
 
virtual void EmitAlignment (unsigned NumBits, const GlobalValue *GV=0) const
 
void printOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
bool PrintAsmOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS)
 
bool PrintAsmMemoryOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode, raw_ostream &OS)
 
void printInstruction (const MachineInstr *MI, raw_ostream &O)
 
void printOp (const MachineOperand &MO, raw_ostream &O)
 
void printRegister (const MachineOperand &MO, bool R0AsZero, raw_ostream &O)
 
void printImmOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printNegImmOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printMEMriOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printFrameIndexOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printBranchOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printCallOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printAbsAddrOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printSymbolHi (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printSymbolLo (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printPredicateOperand (const MachineInstr *MI, unsigned OpNo, raw_ostream &O)
 
void printAddrModeBasePlusOffset (const MachineInstr *MI, int OpNo, raw_ostream &O)
 
void printGlobalOperand (const MachineInstr *MI, int OpNo, raw_ostream &O)
 
void printJumpTable (const MachineInstr *MI, int OpNo, raw_ostream &O)
 
void printConstantPool (const MachineInstr *MI, int OpNo, raw_ostream &O)
 
- Public Member Functions inherited from llvm::AsmPrinter
virtual ~AsmPrinter ()
 
const DwarfDebuggetDwarfDebug () const
 
bool isVerbose () const
 
unsigned getFunctionNumber () const
 
const TargetLoweringObjectFilegetObjFileLowering () const
 getObjFileLowering - Return information about object file lowering. More...
 
const DataLayoutgetDataLayout () const
 getDataLayout - Return information about data layout. More...
 
StringRef getTargetTriple () const
 getTargetTriple - Return the target triple string. More...
 
const MCSectiongetCurrentSection () const
 getCurrentSection() - Return the current section we are emitting to. More...
 
MCSymbolgetSymbol (const GlobalValue *GV) const
 
void getAnalysisUsage (AnalysisUsage &AU) const
 
bool doInitialization (Module &M)
 
bool doFinalization (Module &M)
 
virtual bool runOnMachineFunction (MachineFunction &MF)
 
void SetupMachineFunction (MachineFunction &MF)
 
void EmitFunctionHeader ()
 
void EmitFunctionBody ()
 
void emitPrologLabel (const MachineInstr &MI)
 
CFIMoveType needsCFIMoves ()
 
bool needsSEHMoves ()
 
bool needsRelocationsForDwarfStringPool () const
 
virtual void EmitConstantPool ()
 
void EmitJumpTableInfo ()
 
virtual void EmitGlobalVariable (const GlobalVariable *GV)
 EmitGlobalVariable - Emit the specified global variable to the .s file. More...
 
bool EmitSpecialLLVMGlobal (const GlobalVariable *GV)
 
void EmitAlignment (unsigned NumBits, const GlobalValue *GV=0) const
 
void EmitBasicBlockStart (const MachineBasicBlock *MBB) const
 
void EmitGlobalConstant (const Constant *CV)
 Print a general LLVM constant to the .s file. More...
 
virtual void EmitStartOfAsmFile (Module &)
 
virtual void EmitEndOfAsmFile (Module &)
 
virtual void EmitFunctionBodyStart ()
 
virtual void EmitFunctionBodyEnd ()
 
virtual void EmitFunctionEntryLabel ()
 
virtual void EmitMachineConstantPoolValue (MachineConstantPoolValue *MCPV)
 
virtual void EmitXXStructor (const Constant *CV)
 
virtual void emitImplicitDef (const MachineInstr *MI) const
 
MCSymbolGetTempSymbol (StringRef Name, unsigned ID) const
 
MCSymbolGetTempSymbol (StringRef Name) const
 
MCSymbolGetSymbolWithGlobalValueBase (const GlobalValue *GV, StringRef Suffix, bool ForcePrivate=true) const
 
MCSymbolGetExternalSymbolSymbol (StringRef Sym) const
 
MCSymbolGetCPISymbol (unsigned CPID) const
 GetCPISymbol - Return the symbol for the specified constant pool entry. More...
 
MCSymbolGetJTISymbol (unsigned JTID, bool isLinkerPrivate=false) const
 GetJTISymbol - Return the symbol for the specified jump table entry. More...
 
MCSymbolGetJTSetSymbol (unsigned UID, unsigned MBBID) const
 
MCSymbolGetBlockAddressSymbol (const BlockAddress *BA) const
 
MCSymbolGetBlockAddressSymbol (const BasicBlock *BB) const
 
void printOffset (int64_t Offset, raw_ostream &OS) const
 printOffset - This is just convenient handler for printing offsets. More...
 
void EmitInt8 (int Value) const
 
void EmitInt16 (int Value) const
 
void EmitInt32 (int Value) const
 
void EmitLabelDifference (const MCSymbol *Hi, const MCSymbol *Lo, unsigned Size) const
 
void EmitLabelOffsetDifference (const MCSymbol *Hi, uint64_t Offset, const MCSymbol *Lo, unsigned Size) const
 
void EmitLabelPlusOffset (const MCSymbol *Label, uint64_t Offset, unsigned Size, bool IsSectionRelative=false) const
 
void EmitLabelReference (const MCSymbol *Label, unsigned Size, bool IsSectionRelative=false) const
 
void EmitSLEB128 (int64_t Value, const char *Desc=0) const
 EmitSLEB128 - emit the specified signed leb128 value. More...
 
void EmitULEB128 (uint64_t Value, const char *Desc=0, unsigned PadTo=0) const
 EmitULEB128 - emit the specified unsigned leb128 value. More...
 
void EmitCFAByte (unsigned Val) const
 EmitCFAByte - Emit a .byte 42 directive for a DW_CFA_xxx value. More...
 
void EmitEncodingByte (unsigned Val, const char *Desc=0) const
 
unsigned GetSizeOfEncodedValue (unsigned Encoding) const
 GetSizeOfEncodedValue - Return the size of the encoding in bytes. More...
 
void EmitTTypeReference (const GlobalValue *GV, unsigned Encoding) const
 EmitReference - Emit reference to a ttype global with a specified encoding. More...
 
void EmitSectionOffset (const MCSymbol *Label, const MCSymbol *SectionLabel) const
 
virtual unsigned getISAEncoding ()
 
virtual void EmitDwarfRegOp (const MachineLocation &MLoc, bool Indirect) const
 EmitDwarfRegOp - Emit dwarf register operation. More...
 
void emitCFIInstruction (const MCCFIInstruction &Inst) const
 Emit frame instruction to describe the layout of the frame. More...
 
virtual void PrintSpecial (const MachineInstr *MI, raw_ostream &OS, const char *Code) const
 
- Public Member Functions inherited from llvm::FunctionPass
 FunctionPass (char &pid)
 
PasscreatePrinterPass (raw_ostream &O, const std::string &Banner) const
 createPrinterPass - Get a function printer pass. More...
 
virtual void assignPassManager (PMStack &PMS, PassManagerType T)
 
virtual PassManagerType getPotentialPassManagerType () const
 Return what kind of Pass Manager can manage this pass. More...
 
- Public Member Functions inherited from llvm::Pass
 Pass (PassKind K, char &pid)
 
virtual ~Pass ()
 
PassKind getPassKind () const
 
AnalysisID getPassID () const
 getPassID - Return the PassID number that corresponds to this pass. More...
 
virtual void print (raw_ostream &O, const Module *M) const
 
void dump () const
 
virtual void preparePassManager (PMStack &)
 Check if available pass managers are suitable for this pass or not. More...
 
void setResolver (AnalysisResolver *AR)
 
AnalysisResolvergetResolver () const
 
virtual void releaseMemory ()
 
virtual void * getAdjustedAnalysisPointer (AnalysisID ID)
 
virtual ImmutablePassgetAsImmutablePass ()
 
virtual PMDataManagergetAsPMDataManager ()
 
virtual void verifyAnalysis () const
 
virtual void dumpPassStructure (unsigned Offset=0)
 
template<typename AnalysisType >
AnalysisType * getAnalysisIfAvailable () const
 
bool mustPreserveAnalysisID (char &AID) const
 
template<typename AnalysisType >
AnalysisType & getAnalysis () const
 
template<typename AnalysisType >
AnalysisType & getAnalysis (Function &F)
 
template<typename AnalysisType >
AnalysisType & getAnalysisID (AnalysisID PI) const
 
template<typename AnalysisType >
AnalysisType & getAnalysisID (AnalysisID PI, Function &F)
 

Static Public Member Functions

static const char * getRegisterName (unsigned RegNo)
 
- Static Public Member Functions inherited from llvm::Pass
static const PassInfolookupPassInfo (const void *TI)
 
static const PassInfolookupPassInfo (StringRef Arg)
 
static PasscreatePass (AnalysisID ID)
 

Additional Inherited Members

- Public Types inherited from llvm::AsmPrinter
enum  CFIMoveType { CFI_M_None, CFI_M_EH, CFI_M_Debug }
 
- Public Attributes inherited from llvm::AsmPrinter
TargetMachineTM
 
const MCAsmInfoMAI
 
const MCInstrInfoMII
 
MCContextOutContext
 
MCStreamerOutStreamer
 
const MachineFunctionMF
 The current machine function. More...
 
MachineModuleInfoMMI
 MMI - This is a pointer to the current MachineModuleInfo. More...
 
ManglerMang
 
MCSymbolCurrentFnSym
 
MCSymbolCurrentFnSymForSize
 
- Protected Member Functions inherited from llvm::AsmPrinter
 AsmPrinter (TargetMachine &TM, MCStreamer &Streamer)
 
- Protected Member Functions inherited from llvm::MachineFunctionPass
 MachineFunctionPass (char &ID)
 

Detailed Description

Definition at line 24 of file HexagonAsmPrinter.h.

Constructor & Destructor Documentation

llvm::HexagonAsmPrinter::HexagonAsmPrinter ( TargetMachine TM,
MCStreamer Streamer 
)
inlineexplicit

Definition at line 28 of file HexagonAsmPrinter.h.

References llvm::TargetMachine::getSubtarget().

Member Function Documentation

void HexagonAsmPrinter::EmitAlignment ( unsigned  NumBits,
const GlobalValue GV = 0 
) const
virtual
void HexagonAsmPrinter::EmitInstruction ( const MachineInstr MI)
virtual
virtual const char* llvm::HexagonAsmPrinter::getPassName ( ) const
inlinevirtual

getPassName - Return a nice clean name for a pass. This usually implemented in terms of the name that is registered by one of the Registration templates, but can be overloaded directly.

Reimplemented from llvm::Pass.

Definition at line 33 of file HexagonAsmPrinter.h.

static const char* llvm::HexagonAsmPrinter::getRegisterName ( unsigned  RegNo)
static
bool HexagonAsmPrinter::isBlockOnlyReachableByFallthrough ( const MachineBasicBlock MBB) const
virtual

isBlockOnlyReachableByFallthough - Return true if the basic block has exactly one predecessor and the control transfer mechanism between the predecessor and this block is a fall-through.

Reimplemented from llvm::AsmPrinter.

Definition at line 117 of file HexagonAsmPrinter.cpp.

References llvm::MachineBasicBlock::hasAddressTaken(), and llvm::AsmPrinter::isBlockOnlyReachableByFallthrough().

void llvm::HexagonAsmPrinter::printAbsAddrOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 116 of file HexagonAsmPrinter.h.

void HexagonAsmPrinter::printAddrModeBasePlusOffset ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)

PrintUnmangledNameSafely - Print out the printable characters in the name. Don't print things like
or \0.

Definition at line 253 of file HexagonAsmPrinter.cpp.

References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and llvm::HexagonInstPrinter::getRegisterName().

bool HexagonAsmPrinter::PrintAsmMemoryOperand ( const MachineInstr MI,
unsigned  OpNo,
unsigned  AsmVariant,
const char *  ExtraCode,
raw_ostream OS 
)
virtual

PrintAsmMemoryOperand - Print the specified operand of MI, an INLINEASM instruction, using the specified assembler variant as an address. Targets should override this to format as appropriate. This method can return true if the operand is erroneous.

Reimplemented from llvm::AsmPrinter.

Definition at line 164 of file HexagonAsmPrinter.cpp.

References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), llvm_unreachable, and printOperand().

bool HexagonAsmPrinter::PrintAsmOperand ( const MachineInstr MI,
unsigned  OpNo,
unsigned  AsmVariant,
const char *  ExtraCode,
raw_ostream OS 
)
virtual

PrintAsmOperand - Print out an operand for an inline asm expression.

Reimplemented from llvm::AsmPrinter.

Definition at line 127 of file HexagonAsmPrinter.cpp.

References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isReg(), llvm::AsmPrinter::PrintAsmOperand(), and printOperand().

void llvm::HexagonAsmPrinter::printBranchOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline
void llvm::HexagonAsmPrinter::printCallOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline

Definition at line 112 of file HexagonAsmPrinter.h.

void HexagonAsmPrinter::printConstantPool ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)
void llvm::HexagonAsmPrinter::printFrameIndexOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline
void HexagonAsmPrinter::printGlobalOperand ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)
void llvm::HexagonAsmPrinter::printImmOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline
void llvm::HexagonAsmPrinter::printInstruction ( const MachineInstr MI,
raw_ostream O 
)

printInstruction - This method is automatically generated by tablegen from the instruction set description. This method returns true if the machine instruction was sufficiently described to print it, otherwise it returns false.

void HexagonAsmPrinter::printJumpTable ( const MachineInstr MI,
int  OpNo,
raw_ostream O 
)
void llvm::HexagonAsmPrinter::printMEMriOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline
void llvm::HexagonAsmPrinter::printNegImmOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline
void llvm::HexagonAsmPrinter::printOp ( const MachineOperand MO,
raw_ostream O 
)
void HexagonAsmPrinter::printOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
void HexagonAsmPrinter::printPredicateOperand ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)

Definition at line 189 of file HexagonAsmPrinter.cpp.

References llvm_unreachable.

void llvm::HexagonAsmPrinter::printRegister ( const MachineOperand MO,
bool  R0AsZero,
raw_ostream O 
)
inline

printRegister - Print register according to target requirements.

Definition at line 62 of file HexagonAsmPrinter.h.

References llvm::MachineOperand::getReg(), getRegisterName(), and llvm::TargetRegisterInfo::isPhysicalRegister().

void llvm::HexagonAsmPrinter::printSymbolHi ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline
void llvm::HexagonAsmPrinter::printSymbolLo ( const MachineInstr MI,
unsigned  OpNo,
raw_ostream O 
)
inline

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