@@ -876,11 +876,17 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
876876 return ;
877877 }
878878 ObjcMethodReferenceCollector collector (MD);
879- instance.forEachFileToTypeCheck ([&](SourceFile& SF) {
880- collector.setFileBeforeVisiting (&SF);
881- collector.walk (SF);
882- return false ;
883- });
879+
880+ auto blocklisted = ctx.blockListConfig .hasBlockListAction (MD->getNameStr (),
881+ BlockListKeyKind::ModuleName, BlockListAction::SkipEmittingFineModuleTrace);
882+
883+ if (!blocklisted) {
884+ instance.forEachFileToTypeCheck ([&](SourceFile& SF) {
885+ collector.setFileBeforeVisiting (&SF);
886+ collector.walk (SF);
887+ return false ;
888+ });
889+ }
884890
885891 // print this json line.
886892 std::string stringBuffer;
@@ -899,64 +905,10 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
899905 }
900906}
901907
902- static bool shouldActionTypeEmitFineModuleTrace (FrontendOptions::ActionType action) {
903- // Only full compilation jobs should emit fine module tracing file.
904- // Other partial compilation jobs, such as emitting modules, only typecheck partially
905- // so walking into every function bodies may be risky.
906- switch (action) {
907- case swift::FrontendOptions::ActionType::Typecheck:
908- case swift::FrontendOptions::ActionType::EmitSILGen:
909- case swift::FrontendOptions::ActionType::EmitSIL:
910- case swift::FrontendOptions::ActionType::EmitAssembly:
911- case swift::FrontendOptions::ActionType::EmitLoweredSIL:
912- case swift::FrontendOptions::ActionType::EmitIRGen:
913- case swift::FrontendOptions::ActionType::EmitIR:
914- case swift::FrontendOptions::ActionType::EmitBC:
915- case swift::FrontendOptions::ActionType::EmitObject:
916- return true ;
917- case swift::FrontendOptions::ActionType::NoneAction:
918- case swift::FrontendOptions::ActionType::Parse:
919- case swift::FrontendOptions::ActionType::ResolveImports:
920- case swift::FrontendOptions::ActionType::DumpParse:
921- case swift::FrontendOptions::ActionType::DumpInterfaceHash:
922- case swift::FrontendOptions::ActionType::DumpAST:
923- case swift::FrontendOptions::ActionType::PrintAST:
924- case swift::FrontendOptions::ActionType::PrintASTDecl:
925- case swift::FrontendOptions::ActionType::DumpScopeMaps:
926- case swift::FrontendOptions::ActionType::DumpAvailabilityScopes:
927- case swift::FrontendOptions::ActionType::EmitImportedModules:
928- case swift::FrontendOptions::ActionType::EmitPCH:
929- case swift::FrontendOptions::ActionType::EmitModuleOnly:
930- case swift::FrontendOptions::ActionType::MergeModules:
931- case swift::FrontendOptions::ActionType::CompileModuleFromInterface:
932- case swift::FrontendOptions::ActionType::TypecheckModuleFromInterface:
933- case swift::FrontendOptions::ActionType::EmitSIBGen:
934- case swift::FrontendOptions::ActionType::EmitSIB:
935- case swift::FrontendOptions::ActionType::Immediate:
936- case swift::FrontendOptions::ActionType::REPL:
937- case swift::FrontendOptions::ActionType::DumpTypeInfo:
938- case swift::FrontendOptions::ActionType::EmitPCM:
939- case swift::FrontendOptions::ActionType::DumpPCM:
940- case swift::FrontendOptions::ActionType::ScanDependencies:
941- case swift::FrontendOptions::ActionType::PrintVersion:
942- case swift::FrontendOptions::ActionType::PrintFeature:
943- return false ;
944- }
945- }
946-
947908bool swift::emitFineModuleTraceIfNeeded (CompilerInstance &Instance,
948909 const FrontendOptions &opts) {
949- if (opts.DisableFineModuleTracing ) {
950- return false ;
951- }
952- if (!shouldActionTypeEmitFineModuleTrace (opts.RequestedAction )) {
953- return false ;
954- }
955910 ModuleDecl *mainModule = Instance.getMainModule ();
956911 ASTContext &ctxt = mainModule->getASTContext ();
957- if (ctxt.blockListConfig .hasBlockListAction (mainModule->getNameStr (),
958- BlockListKeyKind::ModuleName, BlockListAction::SkipEmittingFineModuleTrace))
959- return false ;
960912 assert (!ctxt.hadError () &&
961913 " We should've already exited earlier if there was an error." );
962914
0 commit comments