#include "llvm/CodeGen/GCMetadata.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Module.h"
#include "llvm/InitializePasses.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <memory>
#include <string>
usingnamespacellvm;
bool GCStrategyMap::invalidate(Module &M, const PreservedAnalyses &PA,
ModuleAnalysisManager::Invalidator &) { … }
AnalysisKey CollectorMetadataAnalysis::Key;
CollectorMetadataAnalysis::Result
CollectorMetadataAnalysis::run(Module &M, ModuleAnalysisManager &MAM) { … }
AnalysisKey GCFunctionAnalysis::Key;
GCFunctionAnalysis::Result
GCFunctionAnalysis::run(Function &F, FunctionAnalysisManager &FAM) { … }
INITIALIZE_PASS(…)
GCFunctionInfo::GCFunctionInfo(const Function &F, GCStrategy &S)
: … { … }
GCFunctionInfo::~GCFunctionInfo() = default;
bool GCFunctionInfo::invalidate(Function &F, const PreservedAnalyses &PA,
FunctionAnalysisManager::Invalidator &) { … }
char GCModuleInfo::ID = …;
GCModuleInfo::GCModuleInfo() : … { … }
GCFunctionInfo &GCModuleInfo::getFunctionInfo(const Function &F) { … }
void GCModuleInfo::clear() { … }
GCStrategy *GCModuleInfo::getGCStrategy(const StringRef Name) { … }