@@ -876,11 +876,17 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
876
876
return ;
877
877
}
878
878
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
+ }
884
890
885
891
// print this json line.
886
892
std::string stringBuffer;
@@ -899,64 +905,10 @@ static void createFineModuleTraceFile(CompilerInstance &instance,
899
905
}
900
906
}
901
907
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
-
947
908
bool swift::emitFineModuleTraceIfNeeded (CompilerInstance &Instance,
948
909
const FrontendOptions &opts) {
949
- if (opts.DisableFineModuleTracing ) {
950
- return false ;
951
- }
952
- if (!shouldActionTypeEmitFineModuleTrace (opts.RequestedAction )) {
953
- return false ;
954
- }
955
910
ModuleDecl *mainModule = Instance.getMainModule ();
956
911
ASTContext &ctxt = mainModule->getASTContext ();
957
- if (ctxt.blockListConfig .hasBlockListAction (mainModule->getNameStr (),
958
- BlockListKeyKind::ModuleName, BlockListAction::SkipEmittingFineModuleTrace))
959
- return false ;
960
912
assert (!ctxt.hadError () &&
961
913
" We should've already exited earlier if there was an error." );
962
914
0 commit comments