#include "llvm/DebugInfo/GSYM/GsymCreator.h"
#include "llvm/DebugInfo/GSYM/FileWriter.h"
#include "llvm/DebugInfo/GSYM/Header.h"
#include "llvm/DebugInfo/GSYM/LineTable.h"
#include "llvm/DebugInfo/GSYM/OutputAggregator.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <functional>
#include <vector>
usingnamespacellvm;
usingnamespacegsym;
GsymCreator::GsymCreator(bool Quiet)
: … { … }
uint32_t GsymCreator::insertFile(StringRef Path, llvm::sys::path::Style Style) { … }
uint32_t GsymCreator::insertFileEntry(FileEntry FE) { … }
uint32_t GsymCreator::copyFile(const GsymCreator &SrcGC, uint32_t FileIdx) { … }
llvm::Error GsymCreator::save(StringRef Path, llvm::endianness ByteOrder,
std::optional<uint64_t> SegmentSize) const { … }
llvm::Error GsymCreator::encode(FileWriter &O) const { … }
void GsymCreator::prepareMergedFunctions(OutputAggregator &Out) { … }
llvm::Error GsymCreator::finalize(OutputAggregator &Out) { … }
uint32_t GsymCreator::copyString(const GsymCreator &SrcGC, uint32_t StrOff) { … }
uint32_t GsymCreator::insertString(StringRef S, bool Copy) { … }
void GsymCreator::addFunctionInfo(FunctionInfo &&FI) { … }
void GsymCreator::forEachFunctionInfo(
std::function<bool(FunctionInfo &)> const &Callback) { … }
void GsymCreator::forEachFunctionInfo(
std::function<bool(const FunctionInfo &)> const &Callback) const { … }
size_t GsymCreator::getNumFunctionInfos() const { … }
bool GsymCreator::IsValidTextAddress(uint64_t Addr) const { … }
std::optional<uint64_t> GsymCreator::getFirstFunctionAddress() const { … }
std::optional<uint64_t> GsymCreator::getLastFunctionAddress() const { … }
std::optional<uint64_t> GsymCreator::getBaseAddress() const { … }
uint64_t GsymCreator::getMaxAddressOffset() const { … }
uint8_t GsymCreator::getAddressOffsetSize() const { … }
uint64_t GsymCreator::calculateHeaderAndTableSize() const { … }
void GsymCreator::fixupInlineInfo(const GsymCreator &SrcGC, InlineInfo &II) { … }
uint64_t GsymCreator::copyFunctionInfo(const GsymCreator &SrcGC, size_t FuncIdx) { … }
llvm::Error GsymCreator::saveSegments(StringRef Path,
llvm::endianness ByteOrder,
uint64_t SegmentSize) const { … }
llvm::Expected<std::unique_ptr<GsymCreator>>
GsymCreator::createSegment(uint64_t SegmentSize, size_t &FuncIdx) const { … }