LLVM
8.0.1
|
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
Definition at line 97 of file TargetLoweringObjectFileImpl.h.
TargetLoweringObjectFileMachO::TargetLoweringObjectFileMachO | ( | ) |
Definition at line 829 of file TargetLoweringObjectFileImpl.cpp.
References llvm::TargetLoweringObjectFile::SupportIndirectSymViaGOTPCRel.
|
overridedefault |
|
overridevirtual |
Emit the module flags that specify the garbage collection information.
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 858 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCStreamer::AddBlankLine(), llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitLinkerOptions(), llvm::StringRef::empty(), llvm::TargetLoweringObjectFile::getContext(), llvm::SectionKind::getData(), llvm::MCContext::getMachOSection(), llvm::Module::getNamedMetadata(), GetObjCImageInfo(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::report_fatal_error(), llvm::ARMBuildAttrs::Section, and llvm::MCStreamer::SwitchSection().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::AArch64_MachoTargetObjectFile, and llvm::X86_64MachoTargetObjectFile.
Definition at line 1067 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MachineModuleInfoMachO::getGVStubEntry(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer(), llvm::TargetMachine::getSymbol(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), and llvm::GlobalValue::hasLocalLinkage().
|
overridevirtual |
Targets should implement this method to assign a section to globals with an explicit section specfied.
The implementation of this method can assume that GO->hasSection() is true.
Implements llvm::TargetLoweringObjectFile.
Definition at line 911 of file TargetLoweringObjectFileImpl.cpp.
References checkMachOComdat(), llvm::TargetLoweringObjectFile::getContext(), llvm::MCContext::getMachOSection(), llvm::Value::getName(), llvm::GlobalObject::getSection(), llvm::MCSectionMachO::getTypeAndAttributes(), llvm::MCSectionMachO::ParseSectionSpecifier(), llvm::report_fatal_error(), and llvm::ARMBuildAttrs::Section.
|
overridevirtual |
Get MachO PC relative GOT entry relocation.
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::AArch64_MachoTargetObjectFile, and llvm::X86_64MachoTargetObjectFile.
Definition at line 1087 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCConstantExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::MCBinaryExpr::createSub(), llvm::MCValue::getConstant(), llvm::TargetLoweringObjectFile::getContext(), llvm::Module::getDataLayout(), llvm::MachineModuleInfoMachO::getGVStubEntry(), llvm::MachineModuleInfo::getModule(), llvm::MCSymbol::getName(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer(), llvm::DataLayout::getPrivateGlobalPrefix(), llvm::MCValue::getSymB(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCSymbol::isDefined(), llvm::MCSymbol::isExternal(), Name, and llvm::MCSymbolRefExpr::VK_None.
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::AArch64_MachoTargetObjectFile.
Definition at line 1179 of file TargetLoweringObjectFileImpl.cpp.
References canUsePrivateLabel(), llvm::GlobalValue::getBaseObject(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::TargetLoweringObjectFile::getMangler(), llvm::TargetMachine::getMCAsmInfo(), llvm::Mangler::getNameWithPrefix(), and llvm::TargetLoweringObjectFile::SectionForGlobal().
|
overridevirtual |
Given a constant with the SectionKind, return a section that it should be placed in.
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 1022 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCObjectFileInfo::ConstDataSection, llvm::MCObjectFileInfo::EightByteConstantSection, llvm::MCObjectFileInfo::FourByteConstantSection, llvm::SectionKind::isData(), llvm::SectionKind::isMergeableConst16(), llvm::SectionKind::isMergeableConst4(), llvm::SectionKind::isMergeableConst8(), llvm::SectionKind::isReadOnlyWithRel(), llvm::MCObjectFileInfo::ReadOnlySection, and llvm::MCObjectFileInfo::SixteenByteConstantSection.
|
overridevirtual |
The mach-o version of this method defaults to returning a stub reference.
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::AArch64_MachoTargetObjectFile, and llvm::X86_64MachoTargetObjectFile.
Definition at line 1039 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::dwarf::DW_EH_PE_indirect, llvm::TargetLoweringObjectFile::getContext(), llvm::MachineModuleInfoMachO::getGVStubEntry(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer(), llvm::TargetMachine::getSymbol(), llvm::TargetLoweringObjectFile::getSymbolWithGlobalValueBase(), llvm::TargetLoweringObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), and llvm::GlobalValue::hasLocalLinkage().
Referenced by llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), and llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference().
|
overridevirtual |
This method must be called before any actual lowering is done.
Initialize - this method must be called before any actual lowering is done.
This specifies the current context for codegen, and gives the lowering implementations a chance to set up their default sections.
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 834 of file TargetLoweringObjectFileImpl.cpp.
References llvm::dwarf::DW_EH_PE_indirect, llvm::dwarf::DW_EH_PE_pcrel, llvm::dwarf::DW_EH_PE_sdata4, llvm::SectionKind::getData(), llvm::MCContext::getMachOSection(), llvm::TargetMachine::getRelocationModel(), llvm::TargetLoweringObjectFile::Initialize(), llvm::TargetLoweringObjectFile::LSDAEncoding, llvm::TargetLoweringObjectFile::PersonalityEncoding, llvm::MachO::S_MOD_INIT_FUNC_POINTERS, llvm::MachO::S_MOD_TERM_FUNC_POINTERS, llvm::Reloc::Static, llvm::TargetLoweringObjectFile::StaticCtorSection, llvm::TargetLoweringObjectFile::StaticDtorSection, and llvm::TargetLoweringObjectFile::TTypeEncoding.
|
overridevirtual |
Implements llvm::TargetLoweringObjectFile.
Definition at line 952 of file TargetLoweringObjectFileImpl.cpp.
References checkMachOComdat(), llvm::MCObjectFileInfo::ConstDataCoalSection, llvm::MCObjectFileInfo::ConstDataSection, llvm::MCObjectFileInfo::ConstTextCoalSection, llvm::MCObjectFileInfo::CStringSection, llvm::MCObjectFileInfo::DataBSSSection, llvm::MCObjectFileInfo::DataCoalSection, llvm::MCObjectFileInfo::DataCommonSection, llvm::MCObjectFileInfo::DataSection, llvm::MCObjectFileInfo::EightByteConstantSection, llvm::MCObjectFileInfo::FourByteConstantSection, llvm::Module::getDataLayout(), llvm::GlobalValue::getParent(), llvm::DataLayout::getPreferredAlignment(), llvm::GlobalValue::hasExternalLinkage(), llvm::GlobalValue::hasPrivateLinkage(), 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(), llvm::GlobalValue::isWeakForLinker(), llvm::MCObjectFileInfo::ReadOnlySection, llvm::MCObjectFileInfo::SixteenByteConstantSection, llvm::MCObjectFileInfo::TextCoalSection, llvm::MCObjectFileInfo::TextSection, llvm::MCObjectFileInfo::TLSBSSSection, llvm::MCObjectFileInfo::TLSDataSection, and llvm::MCObjectFileInfo::UStringSection.
Referenced by llvm::TargetLoweringObjectFileWasm::getExplicitSectionGlobal().