LLVM API Documentation
#include <TargetLoweringObjectFileImpl.h>


Public Member Functions | |
| virtual | ~TargetLoweringObjectFileMachO () |
| virtual void | emitModuleFlags (MCStreamer &Streamer, ArrayRef< Module::ModuleFlagEntry > ModuleFlags, Mangler *Mang, const TargetMachine &TM) const |
| emitModuleFlags - Perform code emission for module flags. | |
| virtual const MCSection * | SelectSectionForGlobal (const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const |
| virtual const MCSection * | getExplicitSectionGlobal (const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const |
| virtual const MCSection * | getSectionForConstant (SectionKind Kind) const |
| virtual bool | shouldEmitUsedDirectiveFor (const GlobalValue *GV, Mangler *) const |
| virtual const MCExpr * | getTTypeGlobalReference (const GlobalValue *GV, Mangler *Mang, MachineModuleInfo *MMI, unsigned Encoding, MCStreamer &Streamer) const |
| virtual MCSymbol * | getCFIPersonalitySymbol (const GlobalValue *GV, Mangler *Mang, MachineModuleInfo *MMI) const |
Definition at line 79 of file TargetLoweringObjectFileImpl.h.
| virtual llvm::TargetLoweringObjectFileMachO::~TargetLoweringObjectFileMachO | ( | ) | [inline, virtual] |
Definition at line 81 of file TargetLoweringObjectFileImpl.h.
| void TargetLoweringObjectFileMachO::emitModuleFlags | ( | MCStreamer & | Streamer, |
| ArrayRef< Module::ModuleFlagEntry > | ModuleFlags, | ||
| Mangler * | Mang, | ||
| const TargetMachine & | TM | ||
| ) | const [virtual] |
emitModuleFlags - Perform code emission for module flags.
emitModuleFlags - Emit the module flags that specify the garbage collection information.
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 410 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCStreamer::AddBlankLine(), llvm::ArrayRef< T >::begin(), llvm::Module::ModuleFlagEntry::Behavior, llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitLinkerOptions(), llvm::StringRef::empty(), llvm::ArrayRef< T >::end(), llvm::SectionKind::getDataNoRel(), llvm::MDNode::getNumOperands(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm::Module::ModuleFlagEntry::Key, llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::report_fatal_error(), llvm::Module::Require, ARMBuildAttrs::Section, llvm::MCStreamer::SwitchSection(), and llvm::Module::ModuleFlagEntry::Val.
| MCSymbol * TargetLoweringObjectFileMachO::getCFIPersonalitySymbol | ( | const GlobalValue * | GV, |
| Mangler * | Mang, | ||
| MachineModuleInfo * | MMI | ||
| ) | const [virtual] |
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::X86_64MachoTargetObjectFile.
Definition at line 659 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MachineModuleInfoMachO::getGVStubEntry(), llvm::Mangler::getNameWithPrefix(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits >::getPointer(), llvm::Mangler::getSymbol(), and llvm::GlobalValue::hasLocalLinkage().
| const MCSection * TargetLoweringObjectFileMachO::getExplicitSectionGlobal | ( | const GlobalValue * | GV, |
| SectionKind | Kind, | ||
| Mangler * | Mang, | ||
| const TargetMachine & | TM | ||
| ) | const [virtual] |
getExplicitSectionGlobal - Targets should implement this method to assign a section to globals with an explicit section specfied. The implementation of this method can assume that GV->hasSection() is true.
Implements llvm::TargetLoweringObjectFile.
Definition at line 485 of file TargetLoweringObjectFileImpl.cpp.
References llvm::Value::getName(), llvm::GlobalValue::getSection(), llvm::MCSectionMachO::getStubSize(), llvm::MCSectionMachO::getTypeAndAttributes(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::report_fatal_error(), and ARMBuildAttrs::Section.
| const MCSection * TargetLoweringObjectFileMachO::getSectionForConstant | ( | SectionKind | Kind | ) | const [virtual] |
getSectionForConstant - Given a constant with the SectionKind, return a section that it should be placed in.
getSectionForConstant - Given a mergable constant with the specified size and relocation information, return a section that it should be placed in.
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 587 of file TargetLoweringObjectFileImpl.cpp.
References llvm::SectionKind::isDataRel(), llvm::SectionKind::isMergeableConst16(), llvm::SectionKind::isMergeableConst4(), llvm::SectionKind::isMergeableConst8(), and llvm::SectionKind::isReadOnlyWithRel().
| const MCExpr * TargetLoweringObjectFileMachO::getTTypeGlobalReference | ( | const GlobalValue * | GV, |
| Mangler * | Mang, | ||
| MachineModuleInfo * | MMI, | ||
| unsigned | Encoding, | ||
| MCStreamer & | Streamer | ||
| ) | const [virtual] |
getTTypeGlobalReference - The mach-o version of this method defaults to returning a stub reference.
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::X86_64MachoTargetObjectFile.
Definition at line 625 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCSymbolRefExpr::Create(), llvm::dwarf::DW_EH_PE_indirect, llvm::MachineModuleInfoMachO::getGVStubEntry(), llvm::MachineModuleInfoMachO::getHiddenGVStubEntry(), llvm::Mangler::getNameWithPrefix(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits >::getPointer(), llvm::Mangler::getSymbol(), llvm::TargetLoweringObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), llvm::GlobalValue::hasHiddenVisibility(), and llvm::GlobalValue::hasLocalLinkage().
Referenced by llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference().
| const MCSection * TargetLoweringObjectFileMachO::SelectSectionForGlobal | ( | const GlobalValue * | GV, |
| SectionKind | Kind, | ||
| Mangler * | Mang, | ||
| const TargetMachine & | TM | ||
| ) | const [virtual] |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 524 of file TargetLoweringObjectFileImpl.cpp.
References llvm::TargetMachine::getDataLayout(), llvm::DataLayout::getPreferredAlignment(), llvm::GlobalValue::hasExternalLinkage(), llvm::SectionKind::isBSSExtern(), llvm::SectionKind::isBSSLocal(), llvm::SectionKind::isMergeable1ByteCString(), llvm::SectionKind::isMergeable2ByteCString(), llvm::SectionKind::isMergeableConst(), llvm::SectionKind::isMergeableConst16(), llvm::SectionKind::isMergeableConst4(), llvm::SectionKind::isMergeableConst8(), llvm::SectionKind::isReadOnly(), llvm::SectionKind::isReadOnlyWithRel(), llvm::SectionKind::isText(), llvm::SectionKind::isThreadBSS(), llvm::SectionKind::isThreadData(), and llvm::GlobalValue::isWeakForLinker().
| bool TargetLoweringObjectFileMachO::shouldEmitUsedDirectiveFor | ( | const GlobalValue * | GV, |
| Mangler * | Mang | ||
| ) | const [virtual] |
shouldEmitUsedDirectiveFor - This hook allows targets to selectively decide not to emit the UsedDirective for some symbols in llvm.used. FIXME: REMOVE this (rdar://7071300)
shouldEmitUsedDirectiveFor - This hook allows targets to selectively decide not to emit the UsedDirective for some symbols in llvm.used.
On Darwin, internally linked data beginning with "L" or "l" does not have the directive emitted (this occurs in ObjC metadata).
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 606 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCSymbol::getName(), llvm::Mangler::getSymbol(), and llvm::GlobalValue::hasLocalLinkage().