@@ -884,11 +884,17 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
884884 return ;
885885 }
886886 ObjcMethodReferenceCollector collector (MD);
887- instance.forEachFileToTypeCheck ([&](SourceFile& SF) {
888- collector.setFileBeforeVisiting (&SF);
889- collector.walk (SF);
890- return false ;
891- });
887+
888+ auto blocklisted = ctx.blockListConfig .hasBlockListAction (MD->getNameStr (),
889+ BlockListKeyKind::ModuleName, BlockListAction::SkipEmittingFineModuleTrace);
890+
891+ if (!blocklisted) {
892+ instance.forEachFileToTypeCheck ([&](SourceFile& SF) {
893+ collector.setFileBeforeVisiting (&SF);
894+ collector.walk (SF);
895+ return false ;
896+ });
897+ }
892898
893899 // print this json line.
894900 std::string stringBuffer;
@@ -907,64 +913,10 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
907913 }
908914}
909915
910- static bool shouldActionTypeEmitFineModuleTrace (FrontendOptions::ActionType action) {
911- // Only full compilation jobs should emit fine module tracing file.
912- // Other partial compilation jobs, such as emitting modules, only typecheck partially
913- // so walking into every function bodies may be risky.
914- switch (action) {
915- case swift::FrontendOptions::ActionType::Typecheck:
916- case swift::FrontendOptions::ActionType::EmitSILGen:
917- case swift::FrontendOptions::ActionType::EmitSIL:
918- case swift::FrontendOptions::ActionType::EmitAssembly:
919- case swift::FrontendOptions::ActionType::EmitLoweredSIL:
920- case swift::FrontendOptions::ActionType::EmitIRGen:
921- case swift::FrontendOptions::ActionType::EmitIR:
922- case swift::FrontendOptions::ActionType::EmitBC:
923- case swift::FrontendOptions::ActionType::EmitObject:
924- return true ;
925- case swift::FrontendOptions::ActionType::NoneAction:
926- case swift::FrontendOptions::ActionType::Parse:
927- case swift::FrontendOptions::ActionType::ResolveImports:
928- case swift::FrontendOptions::ActionType::DumpParse:
929- case swift::FrontendOptions::ActionType::DumpInterfaceHash:
930- case swift::FrontendOptions::ActionType::DumpAST:
931- case swift::FrontendOptions::ActionType::PrintAST:
932- case swift::FrontendOptions::ActionType::PrintASTDecl:
933- case swift::FrontendOptions::ActionType::DumpScopeMaps:
934- case swift::FrontendOptions::ActionType::DumpAvailabilityScopes:
935- case swift::FrontendOptions::ActionType::EmitImportedModules:
936- case swift::FrontendOptions::ActionType::EmitPCH:
937- case swift::FrontendOptions::ActionType::EmitModuleOnly:
938- case swift::FrontendOptions::ActionType::MergeModules:
939- case swift::FrontendOptions::ActionType::CompileModuleFromInterface:
940- case swift::FrontendOptions::ActionType::TypecheckModuleFromInterface:
941- case swift::FrontendOptions::ActionType::EmitSIBGen:
942- case swift::FrontendOptions::ActionType::EmitSIB:
943- case swift::FrontendOptions::ActionType::Immediate:
944- case swift::FrontendOptions::ActionType::REPL:
945- case swift::FrontendOptions::ActionType::DumpTypeInfo:
946- case swift::FrontendOptions::ActionType::EmitPCM:
947- case swift::FrontendOptions::ActionType::DumpPCM:
948- case swift::FrontendOptions::ActionType::ScanDependencies:
949- case swift::FrontendOptions::ActionType::PrintVersion:
950- case swift::FrontendOptions::ActionType::PrintFeature:
951- return false ;
952- }
953- }
954-
955916bool swift::emitFineModuleTraceIfNeeded (CompilerInstance &Instance,
956917 const FrontendOptions &opts) {
957- if (opts.DisableFineModuleTracing ) {
958- return false ;
959- }
960- if (!shouldActionTypeEmitFineModuleTrace (opts.RequestedAction )) {
961- return false ;
962- }
963918 ModuleDecl *mainModule = Instance.getMainModule ();
964919 ASTContext &ctxt = mainModule->getASTContext ();
965- if (ctxt.blockListConfig .hasBlockListAction (mainModule->getNameStr (),
966- BlockListKeyKind::ModuleName, BlockListAction::SkipEmittingFineModuleTrace))
967- return false ;
968920 assert (!ctxt.hadError () &&
969921 " We should've already exited earlier if there was an error." );
970922
0 commit comments