LLVM API Documentation

Defines | Typedefs | Functions
ELFObjectWriter.cpp File Reference
#include "llvm/MC/MCELFObjectWriter.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.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/MCELF.h"
#include "llvm/MC/MCELFSymbolFlags.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCFixupKindInfo.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCValue.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/ELF.h"
#include "llvm/Support/ErrorHandling.h"
#include <vector>
Include dependency graph for ELFObjectWriter.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "reloc-info"

Typedefs

typedef DenseMap< const
MCSectionData *, std::vector
< MCSymbolData * > > 
DefiningSymbolMap

Functions

static uint8_t mergeTypeForSet (uint8_t origType, uint8_t newType)
static const MCSymbolgetWeakRef (const MCSymbolRefExpr &Ref)
static SmallVector< char, 128 > getUncompressedData (MCAsmLayout &Layout, MCSectionData::FragmentListType &Fragments)
static bool prependCompressionHeader (uint64_t Size, SmallVectorImpl< char > &CompressedContents)
static std::unique_ptr
< MCDataFragment
getCompressedFragment (MCAsmLayout &Layout, MCSectionData::FragmentListType &Fragments)
static void UpdateSymbols (const MCAsmLayout &Layout, const std::vector< MCSymbolData * > &Symbols, MCFragment &NewFragment)
static void CompressDebugSection (MCAssembler &Asm, MCAsmLayout &Layout, const DefiningSymbolMap &DefiningSymbols, const MCSectionELF &Section, MCSectionData &SD)
static int cmpRel (const ELFRelocationEntry *AP, const ELFRelocationEntry *BP)
static void sortRelocs (const MCAssembler &Asm, std::vector< ELFRelocationEntry > &Relocs)

Define Documentation

#define DEBUG_TYPE   "reloc-info"

Definition at line 41 of file ELFObjectWriter.cpp.


Typedef Documentation

Definition at line 1219 of file ELFObjectWriter.cpp.


Function Documentation

static int cmpRel ( const ELFRelocationEntry *  AP,
const ELFRelocationEntry *  BP 
) [static]

Definition at line 1332 of file ELFObjectWriter.cpp.

References llvm::ARM_PROC::A, and llvm_unreachable.

Referenced by sortRelocs().

static void CompressDebugSection ( MCAssembler Asm,
MCAsmLayout Layout,
const DefiningSymbolMap DefiningSymbols,
const MCSectionELF Section,
MCSectionData SD 
) [static]
static std::unique_ptr<MCDataFragment> getCompressedFragment ( MCAsmLayout Layout,
MCSectionData::FragmentListType Fragments 
) [static]
static SmallVector<char, 128> getUncompressedData ( MCAsmLayout Layout,
MCSectionData::FragmentListType Fragments 
) [static]
static const MCSymbol* getWeakRef ( const MCSymbolRefExpr Ref) [static]
static uint8_t mergeTypeForSet ( uint8_t  origType,
uint8_t  newType 
) [static]
static bool prependCompressionHeader ( uint64_t  Size,
SmallVectorImpl< char > &  CompressedContents 
) [static]
static void sortRelocs ( const MCAssembler Asm,
std::vector< ELFRelocationEntry > &  Relocs 
) [static]

Definition at line 1342 of file ELFObjectWriter.cpp.

References llvm::array_pod_sort(), and cmpRel().

static void UpdateSymbols ( const MCAsmLayout Layout,
const std::vector< MCSymbolData * > &  Symbols,
MCFragment NewFragment 
) [static]

Definition at line 1221 of file ELFObjectWriter.cpp.

References llvm::MCAsmLayout::getFragmentOffset().

Referenced by CompressDebugSection().