|
LLVM
4.0.0
|
#include <TargetLoweringObjectFileImpl.h>
Additional Inherited Members | |
Public Types inherited from llvm::MCObjectFileInfo | |
| enum | Environment { IsMachO, IsELF, IsCOFF } |
Static Public Member Functions inherited from llvm::TargetLoweringObjectFile | |
| static SectionKind | getKindForGlobal (const GlobalObject *GO, const TargetMachine &TM) |
| Classify the specified global variable into a set of target independent categories embodied in SectionKind. More... | |
Definition at line 34 of file TargetLoweringObjectFileImpl.h.
|
inline |
Definition at line 43 of file TargetLoweringObjectFileImpl.h.
|
inlineoverride |
Definition at line 45 of file TargetLoweringObjectFileImpl.h.
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 64 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCConstantExpr::create(), E, llvm::MCStreamer::emitELFSize(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitSymbolAttribute(), llvm::MCStreamer::EmitSymbolValue(), llvm::MCStreamer::EmitValueToAlignment(), fuzzer::Flags, llvm::MCSymbol::getName(), llvm::DataLayout::getPointerABIAlignment(), llvm::DataLayout::getPointerSize(), llvm::MCSA_ELF_TypeObject, llvm::MCSA_Hidden, llvm::MCSA_Weak, llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_GROUP, llvm::ELF::SHF_WRITE, llvm::ELF::SHT_PROGBITS, and llvm::MCStreamer::SwitchSection().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 52 of file TargetLoweringObjectFileImpl.cpp.
References llvm::dwarf::DW_EH_PE_absptr, llvm::dwarf::DW_EH_PE_indirect, llvm::MCSymbol::getName(), llvm::TargetMachine::getSymbol(), and llvm::report_fatal_error().
|
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.
Reimplemented in llvm::ARMElfTargetObjectFile, llvm::XCoreTargetObjectFile, and llvm::HexagonTargetObjectFile.
Definition at line 214 of file TargetLoweringObjectFileImpl.cpp.
References C, fuzzer::Flags, getELFComdat(), getELFKindForNamedSection(), getELFSectionFlags(), getELFSectionType(), llvm::GlobalObject::getSection(), AMDGPU::PT_NOTE::SectionName, and llvm::ELF::SHF_GROUP.
Referenced by llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), and llvm::ARMElfTargetObjectFile::getExplicitSectionGlobal().
|
overridevirtual |
Given a constant with the SectionKind, return a section that it should be placed in.
Given a mergeable constant with the specified size and relocation information, return a section that it should be placed in.
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::MipsTargetObjectFile, llvm::LanaiTargetObjectFile, and llvm::XCoreTargetObjectFile.
Definition at line 367 of file TargetLoweringObjectFileImpl.cpp.
References assert(), llvm::SectionKind::isMergeableConst16(), llvm::SectionKind::isMergeableConst32(), llvm::SectionKind::isMergeableConst4(), llvm::SectionKind::isMergeableConst8(), llvm::SectionKind::isReadOnly(), and llvm::SectionKind::isReadOnlyWithRel().
Referenced by llvm::LanaiTargetObjectFile::getSectionForConstant(), and llvm::MipsTargetObjectFile::getSectionForConstant().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 344 of file TargetLoweringObjectFileImpl.cpp.
References C, llvm::GlobalObject::getComdat(), llvm::TargetMachine::getFunctionSections(), llvm::SectionKind::getReadOnly(), selectELFSectionForGlobal(), and llvm::ELF::SHF_ALLOC.
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 425 of file TargetLoweringObjectFileImpl.cpp.
References getStaticStructorSection().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 431 of file TargetLoweringObjectFileImpl.cpp.
References getStaticStructorSection().
|
overridevirtual |
Return an MCExpr to use for a reference to the specified type info global variable from exception handling information.
Reimplemented from llvm::TargetLoweringObjectFile.
Reimplemented in llvm::ARMElfTargetObjectFile, and llvm::SparcELFTargetObjectFile.
Definition at line 86 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::dwarf::DW_EH_PE_indirect, llvm::MachineModuleInfoELF::getGVStubEntry(), llvm::MachineModuleInfo::getObjFileInfo(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getPointer(), llvm::TargetMachine::getSymbol(), llvm::TargetLoweringObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFile::getTTypeReference(), and llvm::GlobalValue::hasLocalLinkage().
Referenced by llvm::SparcELFTargetObjectFile::getTTypeGlobalReference(), and llvm::ARMElfTargetObjectFile::getTTypeGlobalReference().
| void TargetLoweringObjectFileELF::InitializeELF | ( | bool | UseInitArray_ | ) |
Definition at line 458 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCContext::getELFSection(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_WRITE, llvm::ELF::SHT_FINI_ARRAY, llvm::ELF::SHT_INIT_ARRAY, and llvm::ELF::SHT_PROGBITS.
Referenced by llvm::HexagonTargetObjectFile::Initialize(), llvm::WebAssemblyTargetObjectFile::Initialize(), llvm::LanaiTargetObjectFile::Initialize(), and llvm::MipsTargetObjectFile::Initialize().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 437 of file TargetLoweringObjectFileImpl.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::Type::getPointerAddressSpace(), llvm::TargetMachine::getSymbol(), llvm::GlobalValue::getType(), llvm::GlobalValue::getValueType(), llvm::GlobalValue::hasGlobalUnnamedAddr(), llvm::Type::isFunctionTy(), and llvm::GlobalValue::isThreadLocal().
|
overridevirtual |
Implements llvm::TargetLoweringObjectFile.
Reimplemented in llvm::ARMElfTargetObjectFile, llvm::MipsTargetObjectFile, llvm::LanaiTargetObjectFile, llvm::XCoreTargetObjectFile, llvm::AMDGPUTargetObjectFile, llvm::AVRTargetObjectFile, and llvm::HexagonTargetObjectFile.
Definition at line 325 of file TargetLoweringObjectFileImpl.cpp.
References fuzzer::Flags, llvm::TargetMachine::getDataSections(), getELFSectionFlags(), llvm::TargetMachine::getFunctionSections(), llvm::GlobalObject::hasComdat(), llvm::SectionKind::isCommon(), llvm::SectionKind::isText(), selectELFSectionForGlobal(), and llvm::ELF::SHF_MERGE.
Referenced by llvm::HexagonTargetObjectFile::SelectSectionForGlobal(), llvm::AVRTargetObjectFile::SelectSectionForGlobal(), llvm::AMDGPUTargetObjectFile::SelectSectionForGlobal(), llvm::LanaiTargetObjectFile::SelectSectionForGlobal(), llvm::MipsTargetObjectFile::SelectSectionForGlobal(), and llvm::ARMElfTargetObjectFile::SelectSectionForGlobal().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFile.
Definition at line 358 of file TargetLoweringObjectFileImpl.cpp.
|
protected |
Definition at line 39 of file TargetLoweringObjectFileImpl.h.
Referenced by llvm::ARMElfTargetObjectFile::ARMElfTargetObjectFile(), and llvm::X86ELFTargetObjectFile::X86ELFTargetObjectFile().
1.8.6