|
1 | 1 | use crate::codegen_cx::{CodegenArgs, ModuleOutputType, SpirvMetadata}; |
2 | | -use crate::{ |
3 | | - linker, CompileResult, ModuleResult, SpirvCodegenBackend, SpirvModuleBuffer, SpirvThinBuffer, |
4 | | -}; |
| 2 | +use crate::{linker, SpirvCodegenBackend, SpirvModuleBuffer, SpirvThinBuffer}; |
5 | 3 | use ar::{Archive, GnuBuilder, Header}; |
6 | 4 | use rspirv::binary::Assemble; |
| 5 | +use rustc_codegen_spirv_types::{CompileResult, ModuleResult}; |
7 | 6 | use rustc_codegen_ssa::back::lto::{LtoModuleCodegen, SerializedModule, ThinModule, ThinShared}; |
8 | 7 | use rustc_codegen_ssa::back::write::CodegenContext; |
9 | 8 | use rustc_codegen_ssa::{CodegenResults, NativeLib, METADATA_FILENAME}; |
10 | | -use rustc_data_structures::fx::{FxHashMap, FxHashSet}; |
| 9 | +use rustc_data_structures::fx::FxHashSet; |
11 | 10 | use rustc_errors::FatalError; |
12 | 11 | use rustc_middle::bug; |
13 | 12 | use rustc_middle::dep_graph::WorkProduct; |
@@ -156,15 +155,22 @@ fn link_exe( |
156 | 155 | } |
157 | 156 | } |
158 | 157 | linker::LinkResult::MultipleModules(map) => { |
159 | | - let mut hashmap = FxHashMap::default(); |
160 | 158 | let entry_points = map.keys().cloned().collect(); |
161 | | - for (name, spv_binary) in map { |
162 | | - let mut module_filename = out_dir.clone(); |
163 | | - module_filename.push(sanitize_filename::sanitize(&name)); |
164 | | - post_link_single_module(sess, &cg_args, spv_binary.assemble(), &module_filename); |
165 | | - hashmap.insert(name, module_filename); |
166 | | - } |
167 | | - let module_result = ModuleResult::MultiModule(hashmap); |
| 159 | + let map = map |
| 160 | + .into_iter() |
| 161 | + .map(|(name, spv_binary)| { |
| 162 | + let mut module_filename = out_dir.clone(); |
| 163 | + module_filename.push(sanitize_filename::sanitize(&name)); |
| 164 | + post_link_single_module( |
| 165 | + sess, |
| 166 | + &cg_args, |
| 167 | + spv_binary.assemble(), |
| 168 | + &module_filename, |
| 169 | + ); |
| 170 | + (name, module_filename) |
| 171 | + }) |
| 172 | + .collect(); |
| 173 | + let module_result = ModuleResult::MultiModule(map); |
168 | 174 | CompileResult { |
169 | 175 | module: module_result, |
170 | 176 | entry_points, |
|
0 commit comments