LLVM  12.0.0git
Macros | Functions
ELFObjectWriter.cpp File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCAsmLayout.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCFixup.h"
#include "llvm/MC/MCFixupKindInfo.h"
#include "llvm/MC/MCFragment.h"
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/MCValue.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/Support/Alignment.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/SMLoc.h"
#include "llvm/Support/StringSaver.h"
#include "llvm/Support/SwapByteOrder.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for ELFObjectWriter.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "reloc-info"
 

Functions

static uint8_t mergeTypeForSet (uint8_t origType, uint8_t newType)
 
static bool isIFunc (const MCSymbolELF *Symbol)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "reloc-info"

Definition at line 66 of file ELFObjectWriter.cpp.

Function Documentation

◆ isIFunc()

static bool isIFunc ( const MCSymbolELF Symbol)
static

Definition at line 515 of file ELFObjectWriter.cpp.

References llvm::Address, llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, llvm::array_pod_sort(), assert(), llvm::support::big, llvm::zlib::compress(), llvm::MCAsmInfo::compressDebugSections(), llvm::consumeError(), llvm::MCContext::createELFRelSection(), llvm::SmallVectorTemplateCommon< T >::data(), llvm::StringRef::drop_front(), llvm::dyn_cast(), llvm::numbers::e, E, llvm::ELF::ELFCOMPRESS_ZLIB, llvm::ArrayRef< T >::empty(), llvm::encodeULEB128(), llvm::MCExpr::evaluateKnownAbsolute(), llvm::MCSection::getAlignment(), llvm::MCContext::getAsmInfo(), llvm::MCAsmLayout::getBaseSymbol(), llvm::MCSymbolELF::getBinding(), llvm::MCAssembler::getContext(), llvm::MCContext::getELFSection(), llvm::MCAssembler::getFileNames(), llvm::MCSectionELF::getFlags(), llvm::MCSectionELF::getGroup(), llvm::MCSymbol::getIndex(), llvm::MCSymbolRefExpr::getKind(), llvm::MCSection::getName(), llvm::MCSymbol::getName(), llvm::MCSymbol::getSection(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCSymbolELF::getType(), getType(), llvm::MCSymbol::getVariableValue(), llvm::GNU, Info, is64Bit(), llvm::MCSymbol::isAbsolute(), llvm::MCSymbol::isCommon(), isInSymtab(), llvm::MCSection::isRegistered(), llvm::MCSymbolELF::isSignature(), llvm::MCSymbol::isTargetCommon(), llvm::MCSymbol::isTemporary(), llvm::MCSymbol::isUndefined(), llvm::MCSymbol::isUsedInReloc(), llvm::MCSymbol::isVariable(), llvm::MCSymbolELF::isWeakrefUsedInReloc(), llvm::codeview::Link, Magic, mergeTypeForSet(), Mode, Name, llvm::None, llvm::Other, llvm::Ref, llvm::report_fatal_error(), llvm::MCContext::reportError(), llvm::reverse(), llvm::ARMBuildAttrs::Section, AMDGPU::ElfNote::SectionName, llvm::MCSection::setAlignment(), llvm::MCSectionELF::setFlags(), llvm::ELF::SHF_COMPRESSED, llvm::ELF::SHF_GROUP, llvm::ELF::SHN_ABS, llvm::ELF::SHN_COMMON, llvm::ELF::SHN_LORESERVE, llvm::ELF::SHN_UNDEF, llvm::ELF::SHT_REL, llvm::ELF::SHT_RELA, llvm::ELF::SHT_SYMTAB, llvm::ELF::SHT_SYMTAB_SHNDX, Size, llvm::SmallVectorBase< Size_T >::size(), llvm::SmallVectorBase< SmallVectorSizeType< T > >::size(), llvm::StringRef::size(), llvm::StringRef::startswith(), llvm::ELF::STB_LOCAL, llvm::ELF::STT_FILE, llvm::ELF::STT_GNU_IFUNC, llvm::ELF::STT_SECTION, llvm::ELF::STV_DEFAULT, llvm::ARMBuildAttrs::Symbol, llvm::MCAssembler::symbols(), llvm::ELF::SYMENTRY_SIZE32, llvm::ELF::SYMENTRY_SIZE64, llvm::MCSymbolRefExpr::VK_None, llvm::MCSymbolRefExpr::VK_WEAKREF, llvm::RISCVFenceField::W, write(), llvm::support::endian::write(), llvm::MCAssembler::writeSectionData(), and llvm::Z.

◆ mergeTypeForSet()

static uint8_t mergeTypeForSet ( uint8_t  origType,
uint8_t  newType 
)
static