|
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