Lines Matching defs:F
26 for (const auto &F : M) {
27 if (F.isDeclaration() || !F.hasGC())
29 if (!StrategyMap.contains(F.getGC()))
41 for (auto &F : M) {
42 if (F.isDeclaration() || !F.hasGC())
44 if (auto GCName = F.getGC(); !Map.contains(GCName))
53 GCFunctionAnalysis::run(Function &F, FunctionAnalysisManager &FAM) {
54 assert(!F.isDeclaration() && "Can only get GCFunctionInfo for a definition!");
55 assert(F.hasGC() && "Function doesn't have GC!");
57 auto &MAMProxy = FAM.getResult<ModuleAnalysisManagerFunctionProxy>(F);
59 MAMProxy.cachedResultExists<CollectorMetadataAnalysis>(*F.getParent()) &&
62 MAMProxy.getCachedResult<CollectorMetadataAnalysis>(*F.getParent())
64 GCFunctionInfo Info(F, *Map[F.getGC()]);
73 GCFunctionInfo::GCFunctionInfo(const Function &F, GCStrategy &S)
74 : F(F), S(S), FrameSize(~0LL) {}
78 bool GCFunctionInfo::invalidate(Function &F, const PreservedAnalyses &PA,
92 GCFunctionInfo &GCModuleInfo::getFunctionInfo(const Function &F) {
93 assert(!F.isDeclaration() && "Can only get GCFunctionInfo for a definition!");
94 assert(F.hasGC());
96 finfo_map_type::iterator I = FInfoMap.find(&F);
100 GCStrategy *S = getGCStrategy(F.getGC());
101 Functions.push_back(std::make_unique<GCFunctionInfo>(F, *S));
103 FInfoMap[&F] = GFI;