@@ -884,11 +884,17 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
884
884
return ;
885
885
}
886
886
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
+ }
892
898
893
899
// print this json line.
894
900
std::string stringBuffer;
@@ -907,64 +913,10 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
907
913
}
908
914
}
909
915
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
-
955
916
bool swift::emitFineModuleTraceIfNeeded (CompilerInstance &Instance,
956
917
const FrontendOptions &opts) {
957
- if (opts.DisableFineModuleTracing ) {
958
- return false ;
959
- }
960
- if (!shouldActionTypeEmitFineModuleTrace (opts.RequestedAction )) {
961
- return false ;
962
- }
963
918
ModuleDecl *mainModule = Instance.getMainModule ();
964
919
ASTContext &ctxt = mainModule->getASTContext ();
965
- if (ctxt.blockListConfig .hasBlockListAction (mainModule->getNameStr (),
966
- BlockListKeyKind::ModuleName, BlockListAction::SkipEmittingFineModuleTrace))
967
- return false ;
968
920
assert (!ctxt.hadError () &&
969
921
" We should've already exited earlier if there was an error." );
970
922
0 commit comments