LLVM API Documentation

llvm::X86ATTAsmPrinter Struct Reference

#include <X86ATTAsmPrinter.h>

Inheritance diagram for llvm::X86ATTAsmPrinter:
[legend]
Collaboration diagram for llvm::X86ATTAsmPrinter:
[legend]

List of all members.

Public Types

typedef std::map< const
Function
*, X86MachineFunctionInfo > 
FMFInfoMap

Public Member Functions

 X86ATTAsmPrinter (raw_ostream &O, X86TargetMachine &TM, const TargetAsmInfo *T)
virtual const char * getPassName () const
void getAnalysisUsage (AnalysisUsage &AU) const
bool doInitialization (Module &M)
 doInitialization
bool doFinalization (Module &M)
bool printInstruction (const MachineInstr *MI)
void printOperand (const MachineInstr *MI, unsigned OpNo, const char *Modifier=0, bool NotRIPRel=false)
void printi8mem (const MachineInstr *MI, unsigned OpNo)
void printi16mem (const MachineInstr *MI, unsigned OpNo)
void printi32mem (const MachineInstr *MI, unsigned OpNo)
void printi64mem (const MachineInstr *MI, unsigned OpNo)
void printi128mem (const MachineInstr *MI, unsigned OpNo)
void printf32mem (const MachineInstr *MI, unsigned OpNo)
void printf64mem (const MachineInstr *MI, unsigned OpNo)
void printf80mem (const MachineInstr *MI, unsigned OpNo)
void printf128mem (const MachineInstr *MI, unsigned OpNo)
void printlea64_32mem (const MachineInstr *MI, unsigned OpNo)
bool printAsmMRegister (const MachineOperand &MO, const char Mode)
bool PrintAsmOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode)
bool PrintAsmMemoryOperand (const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode)
void printMachineInstruction (const MachineInstr *MI)
void printSSECC (const MachineInstr *MI, unsigned Op)
void printMemReference (const MachineInstr *MI, unsigned Op, const char *Modifier=NULL)
void printPICJumpTableSetLabel (unsigned uid, const MachineBasicBlock *MBB) const
void printPICJumpTableSetLabel (unsigned uid, unsigned uid2, const MachineBasicBlock *MBB) const
void printPICJumpTableEntry (const MachineJumpTableInfo *MJTI, const MachineBasicBlock *MBB, unsigned uid) const
void printPICLabel (const MachineInstr *MI, unsigned Op)
void printModuleLevelGV (const GlobalVariable *GVar)
void printGVStub (const char *GV, const char *Prefix=NULL)
void printHiddenGVStub (const char *GV, const char *Prefix=NULL)
bool runOnMachineFunction (MachineFunction &F)
void emitFunctionHeader (const MachineFunction &MF)
void decorateName (std::string &Name, const GlobalValue *GV)

Public Attributes

DwarfWriter * DW
MachineModuleInfo * MMI
const X86Subtarget * Subtarget
StringSet FnStubs
StringSet GVStubs
StringSet HiddenGVStubs
StringSet DLLExportedFns
StringSet DLLExportedGVs
FMFInfoMap FunctionInfoMap


Detailed Description

Definition at line 31 of file X86ATTAsmPrinter.h.


Member Typedef Documentation

Definition at line 147 of file X86ATTAsmPrinter.h.


Constructor & Destructor Documentation

llvm::X86ATTAsmPrinter::X86ATTAsmPrinter ( raw_ostream &  O,
X86TargetMachine &  TM,
const TargetAsmInfo *  T 
) [inline]

Definition at line 36 of file X86ATTAsmPrinter.h.

References llvm::TargetMachine::getSubtarget(), and Subtarget.


Member Function Documentation

virtual const char* llvm::X86ATTAsmPrinter::getPassName (  )  const [inline, virtual]

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.

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 42 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::getAnalysisUsage ( AnalysisUsage &  AU  )  const [inline, virtual]

bool X86ATTAsmPrinter::doInitialization ( Module &  M  )  [virtual]

bool X86ATTAsmPrinter::doFinalization ( Module &  M  )  [virtual]

bool llvm::X86ATTAsmPrinter::printInstruction ( const MachineInstr *  MI  ) 

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.

Referenced by printMachineInstruction().

void X86ATTAsmPrinter::printOperand ( const MachineInstr *  MI,
unsigned  OpNo,
const char *  Modifier = 0,
bool  NotRIPRel = false 
)

Definition at line 288 of file X86ATTAsmPrinter.cpp.

References decorateName(), llvm::dyn_cast(), llvm::AsmPrinter::ExtWeakSymbols, FnStubs, llvm::TargetRegisterInfo::getAsmName(), llvm::X86Subtarget::getDarwinVers(), llvm::AsmPrinter::getFunctionNumber(), llvm::MachineOperand::getGlobal(), llvm::TargetAsmInfo::getGlobalPrefix(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getOffset(), llvm::MachineInstr::getOperand(), getPICLabelString(), llvm::TargetAsmInfo::getPrivateGlobalPrefix(), llvm::MachineOperand::getReg(), llvm::TargetMachine::getRelocationModel(), llvm::MachineOperand::getSymbolName(), llvm::MachineOperand::getType(), llvm::Mangler::getValueName(), llvm::getX86SubSuperRegister(), GV, llvm::X86Subtarget::GVRequiresExtraLoad(), GVStubs, llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasDLLImportLinkage(), llvm::GlobalValue::hasExternalWeakLinkage(), llvm::GlobalValue::hasHiddenVisibility(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasProtectedVisibility(), HiddenGVStubs, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, llvm::StringSet< AllocatorTy >::insert(), llvm::X86Subtarget::is64Bit(), llvm::GlobalValue::isDeclaration(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::X86Subtarget::isPICStyleGOT(), llvm::X86Subtarget::isPICStyleRIPRel(), llvm::X86Subtarget::isPICStyleStub(), llvm::X86Subtarget::isTargetCygMing(), llvm::X86Subtarget::isTargetDarwin(), llvm::GlobalVariable::isThreadLocal(), llvm::AsmPrinter::Mang, llvm::GlobalValue::mayBeOverridden(), llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_Register, Name, llvm::AsmPrinter::O, llvm::Reloc::PIC_, llvm::AsmPrinter::printBasicBlockLabel(), llvm::AsmPrinter::printOffset(), llvm::AsmPrinter::printSuffixedName(), Reg, shouldPrintGOT(), shouldPrintPLT(), shouldPrintStub(), llvm::Reloc::Static, Subtarget, llvm::AsmPrinter::TAI, llvm::AsmPrinter::TM, llvm::AsmPrinter::TRI, and VT.

Referenced by PrintAsmMemoryOperand(), PrintAsmOperand(), and printMemReference().

void llvm::X86ATTAsmPrinter::printi8mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 69 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printi16mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 72 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printi32mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 75 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printi64mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 78 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printi128mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 81 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printf32mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 84 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printf64mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 87 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printf80mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 90 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printf128mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 93 of file X86ATTAsmPrinter.h.

void llvm::X86ATTAsmPrinter::printlea64_32mem ( const MachineInstr *  MI,
unsigned  OpNo 
) [inline]

Definition at line 96 of file X86ATTAsmPrinter.h.

bool X86ATTAsmPrinter::printAsmMRegister ( const MachineOperand &  MO,
const char  Mode 
)

bool X86ATTAsmPrinter::PrintAsmOperand ( const MachineInstr *  MI,
unsigned  OpNo,
unsigned  AsmVariant,
const char *  ExtraCode 
) [virtual]

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

Reimplemented from llvm::AsmPrinter.

Definition at line 664 of file X86ATTAsmPrinter.cpp.

References llvm::MachineInstr::getOperand(), llvm::MachineOperand::isReg(), printAsmMRegister(), and printOperand().

bool X86ATTAsmPrinter::PrintAsmMemoryOperand ( const MachineInstr *  MI,
unsigned  OpNo,
unsigned  AsmVariant,
const char *  ExtraCode 
) [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 696 of file X86ATTAsmPrinter.cpp.

References printMemReference(), and printOperand().

void X86ATTAsmPrinter::printMachineInstruction ( const MachineInstr *  MI  ) 

printMachineInstruction -- Print out a single X86 LLVM instruction MI in AT&T syntax to the current output stream.

Definition at line 724 of file X86ATTAsmPrinter.cpp.

References printInstruction().

Referenced by runOnMachineFunction().

void X86ATTAsmPrinter::printSSECC ( const MachineInstr *  MI,
unsigned  Op 
)

void X86ATTAsmPrinter::printMemReference ( const MachineInstr *  MI,
unsigned  Op,
const char *  Modifier = NULL 
)

void X86ATTAsmPrinter::printPICJumpTableSetLabel ( unsigned  uid,
const MachineBasicBlock *  MBB 
) const [virtual]

printPICJumpTableSetLabel - This method prints a set label for the specified MachineBasicBlock for a jumptable entry.

printPICJumpTableSetLabel - This method prints a set label for the specified MachineBasicBlock for a jumptable entry.

Reimplemented from llvm::AsmPrinter.

Definition at line 589 of file X86ATTAsmPrinter.cpp.

References llvm::AsmPrinter::getFunctionNumber(), llvm::MachineBasicBlock::getNumber(), getPICLabelString(), llvm::TargetAsmInfo::getPrivateGlobalPrefix(), llvm::TargetAsmInfo::getSetDirective(), llvm::X86Subtarget::isPICStyleGOT(), llvm::X86Subtarget::isPICStyleRIPRel(), llvm::AsmPrinter::O, llvm::AsmPrinter::printBasicBlockLabel(), Subtarget, and llvm::AsmPrinter::TAI.

void llvm::X86ATTAsmPrinter::printPICJumpTableSetLabel ( unsigned  uid,
unsigned  uid2,
const MachineBasicBlock *  MBB 
) const [inline, virtual]

Reimplemented from llvm::AsmPrinter.

Definition at line 112 of file X86ATTAsmPrinter.h.

References llvm::AsmPrinter::printPICJumpTableSetLabel().

void X86ATTAsmPrinter::printPICJumpTableEntry ( const MachineJumpTableInfo *  MJTI,
const MachineBasicBlock *  MBB,
unsigned  uid 
) const [virtual]

void X86ATTAsmPrinter::printPICLabel ( const MachineInstr *  MI,
unsigned  Op 
)

void X86ATTAsmPrinter::printModuleLevelGV ( const GlobalVariable *  GVar  ) 

Definition at line 753 of file X86ATTAsmPrinter.cpp.

References Align, llvm::GlobalValue::AppendingLinkage, llvm::CallingConv::C, llvm::GlobalValue::CommonLinkage, llvm::GlobalValue::DLLExportLinkage, llvm::AsmPrinter::EmitAlignment(), llvm::AsmPrinter::EmitGlobalConstant(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::GlobalValue::ExternalLinkage, llvm::AsmPrinter::ExtWeakSymbols, llvm::TargetAsmInfo::getAlignmentIsInBytes(), llvm::TargetAsmInfo::getCOMMDirective(), llvm::TargetAsmInfo::getCOMMDirectiveTakesAlignment(), llvm::TargetAsmInfo::getCommentString(), llvm::GlobalVariable::getInitializer(), llvm::TargetAsmInfo::getLCOMMDirective(), llvm::GlobalValue::getLinkage(), llvm::Value::getName(), llvm::TargetData::getPreferredAlignmentLog(), llvm::TargetMachine::getRelocationModel(), llvm::TargetMachine::getTargetData(), llvm::Value::getType(), llvm::TargetData::getTypePaddedSize(), llvm::Mangler::getValueName(), llvm::GlobalValue::getVisibility(), llvm::TargetAsmInfo::getWeakDefDirective(), llvm::TargetAsmInfo::getZeroFillDirective(), GV, llvm::GlobalValue::hasCommonLinkage(), llvm::TargetAsmInfo::hasDotTypeDotSizeDirective(), llvm::GlobalValue::hasExternalLinkage(), llvm::GlobalValue::hasExternalWeakLinkage(), llvm::GlobalVariable::hasInitializer(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasSection(), llvm::GlobalValue::InternalLinkage, llvm::Constant::isNullValue(), llvm::X86Subtarget::isTargetCygMing(), llvm::X86Subtarget::isTargetDarwin(), llvm::X86Subtarget::isTargetELF(), llvm::GlobalVariable::isThreadLocal(), llvm::GlobalValue::LinkOnceLinkage, llvm::AsmPrinter::Mang, llvm::GlobalValue::mayBeOverridden(), llvm::AsmPrinter::O, PrintUnmangledNameSafely(), llvm::AsmPrinter::printVisibility(), llvm::GlobalValue::PrivateLinkage, llvm::TargetAsmInfo::SectionForGlobal(), llvm::Reloc::Static, Subtarget, llvm::AsmPrinter::SwitchToSection(), llvm::AsmPrinter::TAI, TD, llvm::AsmPrinter::TM, and llvm::GlobalValue::WeakLinkage.

Referenced by doFinalization().

void X86ATTAsmPrinter::printGVStub ( const char *  GV,
const char *  Prefix = NULL 
)

printGVStub - Print stub for a global value.

Definition at line 881 of file X86ATTAsmPrinter.cpp.

References llvm::AsmPrinter::O, and llvm::AsmPrinter::printSuffixedName().

Referenced by doFinalization().

void X86ATTAsmPrinter::printHiddenGVStub ( const char *  GV,
const char *  Prefix = NULL 
)

printHiddenGVStub - Print stub for a hidden global value.

Definition at line 890 of file X86ATTAsmPrinter.cpp.

References llvm::AsmPrinter::EmitAlignment(), llvm::TargetAsmInfo::getData32bitsDirective(), llvm::AsmPrinter::O, llvm::AsmPrinter::printSuffixedName(), and llvm::AsmPrinter::TAI.

Referenced by doFinalization().

bool X86ATTAsmPrinter::runOnMachineFunction ( MachineFunction &  MF  )  [virtual]

void X86ATTAsmPrinter::emitFunctionHeader ( const MachineFunction &  MF  ) 

void X86ATTAsmPrinter::decorateName ( std::string &  Name,
const GlobalValue *  GV 
)


Member Data Documentation

DW -This is needed because printDeclare() has to insert DbgVariable entries into the dwarf table. This is a short term hack that ought be fixed soon.

Reimplemented from llvm::AsmPrinter.

Definition at line 32 of file X86ATTAsmPrinter.h.

Referenced by doFinalization(), doInitialization(), and runOnMachineFunction().

Definition at line 33 of file X86ATTAsmPrinter.h.

Referenced by doFinalization(), and doInitialization().

Definition at line 131 of file X86ATTAsmPrinter.h.

Referenced by doFinalization(), and printOperand().

Definition at line 131 of file X86ATTAsmPrinter.h.

Referenced by doFinalization(), and printOperand().

Definition at line 131 of file X86ATTAsmPrinter.h.

Referenced by doFinalization(), and printOperand().

Definition at line 134 of file X86ATTAsmPrinter.h.

Referenced by doFinalization(), and runOnMachineFunction().

Definition at line 134 of file X86ATTAsmPrinter.h.

Referenced by doFinalization().

Definition at line 148 of file X86ATTAsmPrinter.h.

Referenced by decorateName(), and runOnMachineFunction().


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