LLVM
8.0.1
|
#include "Target/Hexagon/HexagonTargetObjectFile.h"
Definition at line 18 of file HexagonTargetObjectFile.h.
|
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.
Reimplemented from llvm::TargetLoweringObjectFileELF.
Definition at line 166 of file HexagonTargetObjectFile.cpp.
References llvm::StringRef::find(), llvm::TargetLoweringObjectFile::getContext(), llvm::MCContext::getELFSection(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), llvm::Value::getName(), llvm::GlobalObject::getSection(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasExternalLinkage(), llvm::GlobalValue::hasInternalLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasPrivateLinkage(), llvm::GlobalObject::hasSection(), llvm::SectionKind::isBSS(), llvm::SectionKind::isBSSLocal(), llvm::SectionKind::isCommon(), isGlobalInSmallSection(), llvm::StringRef::npos, llvm::ARMBuildAttrs::Section, llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_EXECINSTR, llvm::ELF::SHF_WRITE, llvm::ELF::SHT_PROGBITS, and TRACE.
Referenced by getLutUsedFunction().
const Function * HexagonTargetObjectFile::getLutUsedFunction | ( | const GlobalObject * | GO | ) | const |
Definition at line 432 of file HexagonTargetObjectFile.cpp.
References llvm::dyn_cast(), getExplicitSectionGlobal(), llvm::SectionKind::getText(), llvm::GlobalObject::hasSection(), I, SelectSectionForGlobal(), and llvm::Value::users().
Referenced by SelectSectionForGlobal().
unsigned HexagonTargetObjectFile::getSmallDataSize | ( | ) | const |
Definition at line 281 of file HexagonTargetObjectFile.cpp.
References SmallDataThreshold.
|
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::TargetLoweringObjectFileELF.
Definition at line 113 of file HexagonTargetObjectFile.cpp.
References llvm::TargetLoweringObjectFile::getContext(), llvm::MCContext::getELFSection(), llvm::TargetLoweringObjectFileELF::Initialize(), llvm::TargetLoweringObjectFileELF::InitializeELF(), llvm::TargetMachine::Options, llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_HEX_GPREL, llvm::ELF::SHF_WRITE, llvm::ELF::SHT_NOBITS, llvm::ELF::SHT_PROGBITS, and llvm::TargetOptions::UseInitArray.
bool HexagonTargetObjectFile::isGlobalInSmallSection | ( | const GlobalObject * | GO, |
const TargetMachine & | TM | ||
) | const |
Return true if this global value should be placed into small data/bss section.
Definition at line 200 of file HexagonTargetObjectFile.cpp.
References llvm::dbgs(), llvm::dyn_cast(), llvm::Value::getName(), isSmallDataEnabled(), isSmallDataSection(), LLVM_DEBUG, Size, SmallDataThreshold, llvm::ARM_MB::ST, and StaticsInSData.
Referenced by getExplicitSectionGlobal(), SelectSectionForGlobal(), and llvm::HexagonTargetLowering::shouldReduceLoadWidth().
bool HexagonTargetObjectFile::isSmallDataEnabled | ( | const TargetMachine & | TM | ) | const |
Definition at line 276 of file HexagonTargetObjectFile.cpp.
References llvm::TargetMachine::isPositionIndependent(), and SmallDataThreshold.
Referenced by isGlobalInSmallSection().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFileELF.
Definition at line 128 of file HexagonTargetObjectFile.cpp.
References llvm::MCObjectFileInfo::BSSSection, EmitLutInText, getLutUsedFunction(), llvm::Value::getName(), llvm::GlobalObject::getSection(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasExternalLinkage(), llvm::GlobalValue::hasInternalLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasPrivateLinkage(), llvm::SectionKind::isBSS(), llvm::SectionKind::isBSSLocal(), llvm::SectionKind::isCommon(), isGlobalInSmallSection(), llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), llvm::StringRef::startswith(), and TRACE.
Referenced by getLutUsedFunction().
|
overridevirtual |
Reimplemented from llvm::TargetLoweringObjectFileELF.
Definition at line 285 of file HexagonTargetObjectFile.cpp.
References llvm::SmallString< InternalLen >::append(), llvm::Type::ArrayTyID, llvm::MCObjectFileInfo::BSSSection, llvm::Type::DoubleTyID, llvm::dyn_cast(), E, llvm::StructType::elements(), EmitJtInText, llvm::Type::FloatTyID, llvm::Type::FP128TyID, llvm::Type::FunctionTyID, llvm::TargetLoweringObjectFile::getContext(), llvm::SectionKind::getData(), llvm::Module::getDataLayout(), llvm::TargetMachine::getDataSections(), llvm::SequentialType::getElementType(), llvm::PointerType::getElementType(), llvm::MCContext::getELFSection(), llvm::Value::getName(), llvm::StructType::getNumElements(), llvm::GlobalValue::getParent(), llvm::GlobalObject::getSection(), getSectionSuffixForSize(), llvm::GlobalValue::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::Type::getTypeID(), llvm::Type::HalfTyID, llvm::GlobalObject::hasSection(), llvm::Type::IntegerTyID, llvm::SectionKind::isBSS(), llvm::SectionKind::isBSSLocal(), llvm::SectionKind::isCommon(), llvm::SectionKind::isData(), llvm::SectionKind::isMergeableConst(), isSmallDataSection(), Kind, llvm::Type::LabelTyID, llvm::Type::MetadataTyID, Name, NoSmallDataSorting, llvm::Type::PointerTyID, llvm::Type::PPC_FP128TyID, llvm::cl::Prefix, llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), llvm::ELF::SHF_ALLOC, llvm::ELF::SHF_HEX_GPREL, llvm::ELF::SHF_WRITE, llvm::ELF::SHT_NOBITS, llvm::ELF::SHT_PROGBITS, Size, llvm::SmallString< InternalLen >::str(), llvm::Twine::str(), llvm::Type::StructTyID, llvm::TargetLoweringObjectFileELF::TM, llvm::Type::TokenTyID, TRACE, llvm::Type::VectorTyID, llvm::Type::VoidTyID, llvm::Type::X86_FP80TyID, and llvm::Type::X86_MMXTyID.