#include "DependencyTracker.h"
#include "llvm/Support/FormatVariadic.h"
usingnamespacellvm;
usingnamespacedwarf_linker;
usingnamespacedwarf_linker::parallel;
struct BrokenLink { … };
void DependencyTracker::verifyKeepChain() { … }
bool DependencyTracker::resolveDependenciesAndMarkLiveness(
bool InterCUProcessingStarted, std::atomic<bool> &HasNewInterconnectedCUs) { … }
void DependencyTracker::addActionToRootEntriesWorkList(
LiveRootWorklistActionTy Action, const UnitEntryPairTy &Entry,
std::optional<UnitEntryPairTy> ReferencedBy) { … }
void DependencyTracker::collectRootsToKeep(
const UnitEntryPairTy &Entry, std::optional<UnitEntryPairTy> ReferencedBy,
bool IsLiveParent) { … }
bool DependencyTracker::markCollectedLiveRootsAsKept(
bool InterCUProcessingStarted, std::atomic<bool> &HasNewInterconnectedCUs) { … }
bool DependencyTracker::updateDependenciesCompleteness() { … }
void DependencyTracker::setPlainDwarfPlacementRec(
const UnitEntryPairTy &Entry) { … }
static bool isNamespaceLikeEntry(const DWARFDebugInfoEntry *Entry) { … }
bool isAlreadyMarked(const CompileUnit::DIEInfo &Info,
CompileUnit::DieOutputPlacement NewPlacement) { … }
bool isAlreadyMarked(const UnitEntryPairTy &Entry,
CompileUnit::DieOutputPlacement NewPlacement) { … }
void DependencyTracker::markParentsAsKeepingChildren(
const UnitEntryPairTy &Entry) { … }
static CompileUnit::DieOutputPlacement
getFinalPlacementForEntry(const UnitEntryPairTy &Entry,
CompileUnit::DieOutputPlacement Placement) { … }
bool DependencyTracker::markDIEEntryAsKeptRec(
LiveRootWorklistActionTy Action, const UnitEntryPairTy &RootEntry,
const UnitEntryPairTy &Entry, bool InterCUProcessingStarted,
std::atomic<bool> &HasNewInterconnectedCUs) { … }
bool DependencyTracker::isTypeTableCandidate(
const DWARFDebugInfoEntry *DIEEntry) { … }
bool DependencyTracker::maybeAddReferencedRoots(
LiveRootWorklistActionTy Action, const UnitEntryPairTy &RootEntry,
const UnitEntryPairTy &Entry, bool InterCUProcessingStarted,
std::atomic<bool> &HasNewInterconnectedCUs) { … }
UnitEntryPairTy
DependencyTracker::getRootForSpecifiedEntry(UnitEntryPairTy Entry) { … }
bool DependencyTracker::isLiveVariableEntry(const UnitEntryPairTy &Entry,
bool IsLiveParent) { … }
bool DependencyTracker::isLiveSubprogramEntry(const UnitEntryPairTy &Entry) { … }