llvm-project
81d3c191 - [DWARFLinker] Support parseable Swift interfaces in the parallel linker (#195475)

Commit
1 day ago
[DWARFLinker] Support parseable Swift interfaces in the parallel linker (#195475) CompileUnit::Language was filtered through isODRLanguage at construction, so non-ODR languages landed as std::nullopt and analyzeImportedModule's Swift branch was never reached under --linker parallel. Store the raw DW_AT_language and apply isODRLanguage only where ODR is actually decided. Reaching that branch then exposes a shared-map write from parallelForEach workers. A mutex would make it safe but not deterministic: conflict warnings and last-writer-wins contents would depend on thread scheduling and diverge from the classic linker. Stage entries per-CU and merge them serially in input order after analysis, so results match classic regardless of schedule. Because the diagnostics are emitted after unloading the input, we do lose the originating DW_TAG_module. The warning still names the module and both conflicting paths, which carries the load-bearing information.
Author
Parents
Loading