Skip to content

Commit bc2db43

Browse files
committed
Remove unnecessary parts of run_fat_lto signature
Fat LTO merges into one module, so only return one module.
1 parent bdbee63 commit bc2db43

File tree

4 files changed

+12
-19
lines changed

4 files changed

+12
-19
lines changed

src/librustc_codegen_llvm/back/lto.rs

+5-12
Original file line numberDiff line numberDiff line change
@@ -144,22 +144,15 @@ fn prepare_lto(cgcx: &CodegenContext<LlvmCodegenBackend>,
144144
/// for further optimization.
145145
pub(crate) fn run_fat(cgcx: &CodegenContext<LlvmCodegenBackend>,
146146
modules: Vec<ModuleCodegen<ModuleLlvm>>,
147-
_cached_modules: Vec<(SerializedModule<ModuleBuffer>, WorkProduct)>,
148147
timeline: &mut Timeline)
149-
-> Result<(Vec<LtoModuleCodegen<LlvmCodegenBackend>>, Vec<WorkProduct>), FatalError>
148+
-> Result<LtoModuleCodegen<LlvmCodegenBackend>, FatalError>
150149
{
151150
let diag_handler = cgcx.create_diag_handler();
152151
let (symbol_white_list, upstream_modules) = prepare_lto(cgcx, timeline, &diag_handler)?;
153152
let symbol_white_list = symbol_white_list.iter()
154153
.map(|c| c.as_ptr())
155154
.collect::<Vec<_>>();
156-
let opt_jobs = fat_lto(cgcx,
157-
&diag_handler,
158-
modules,
159-
upstream_modules,
160-
&symbol_white_list,
161-
timeline);
162-
opt_jobs.map(|opt_jobs| (opt_jobs, vec![]))
155+
fat_lto(cgcx, &diag_handler, modules, upstream_modules, &symbol_white_list, timeline)
163156
}
164157

165158
/// Performs thin LTO by performing necessary global analysis and returning two
@@ -195,7 +188,7 @@ fn fat_lto(cgcx: &CodegenContext<LlvmCodegenBackend>,
195188
mut serialized_modules: Vec<(SerializedModule<ModuleBuffer>, CString)>,
196189
symbol_white_list: &[*const libc::c_char],
197190
timeline: &mut Timeline)
198-
-> Result<Vec<LtoModuleCodegen<LlvmCodegenBackend>>, FatalError>
191+
-> Result<LtoModuleCodegen<LlvmCodegenBackend>, FatalError>
199192
{
200193
info!("going for a fat lto");
201194

@@ -284,10 +277,10 @@ fn fat_lto(cgcx: &CodegenContext<LlvmCodegenBackend>,
284277
timeline.record("passes");
285278
}
286279

287-
Ok(vec![LtoModuleCodegen::Fat {
280+
Ok(LtoModuleCodegen::Fat {
288281
module: Some(module),
289282
_serialized_bitcode: serialized_bitcode,
290-
}])
283+
})
291284
}
292285

293286
struct Linker<'a>(&'a mut llvm::Linker<'a>);

src/librustc_codegen_llvm/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,9 @@ impl WriteBackendMethods for LlvmCodegenBackend {
179179
fn run_fat_lto(
180180
cgcx: &CodegenContext<Self>,
181181
modules: Vec<ModuleCodegen<Self::Module>>,
182-
cached_modules: Vec<(SerializedModule<Self::ModuleBuffer>, WorkProduct)>,
183182
timeline: &mut Timeline
184-
) -> Result<(Vec<LtoModuleCodegen<Self>>, Vec<WorkProduct>), FatalError> {
185-
back::lto::run_fat(cgcx, modules, cached_modules, timeline)
183+
) -> Result<LtoModuleCodegen<Self>, FatalError> {
184+
back::lto::run_fat(cgcx, modules, timeline)
186185
}
187186
fn run_thin_lto(
188187
cgcx: &CodegenContext<Self>,

src/librustc_codegen_ssa/back/write.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,10 @@ fn generate_lto_work<B: ExtraBackendMethods>(
264264

265265
let (lto_modules, copy_jobs) = if !needs_fat_lto.is_empty() {
266266
assert!(needs_thin_lto.is_empty());
267-
B::run_fat_lto(cgcx, needs_fat_lto, import_only_modules, &mut timeline)
268-
.unwrap_or_else(|e| e.raise())
267+
assert!(import_only_modules.is_empty());
268+
let lto_module = B::run_fat_lto(cgcx, needs_fat_lto, &mut timeline)
269+
.unwrap_or_else(|e| e.raise());
270+
(vec![lto_module], vec![])
269271
} else {
270272
assert!(needs_fat_lto.is_empty());
271273
B::run_thin_lto(cgcx, needs_thin_lto, import_only_modules, &mut timeline)

src/librustc_codegen_ssa/traits/write.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ pub trait WriteBackendMethods: 'static + Sized + Clone {
2929
fn run_fat_lto(
3030
cgcx: &CodegenContext<Self>,
3131
modules: Vec<ModuleCodegen<Self::Module>>,
32-
cached_modules: Vec<(SerializedModule<Self::ModuleBuffer>, WorkProduct)>,
3332
timeline: &mut Timeline,
34-
) -> Result<(Vec<LtoModuleCodegen<Self>>, Vec<WorkProduct>), FatalError>;
33+
) -> Result<LtoModuleCodegen<Self>, FatalError>;
3534
/// Performs thin LTO by performing necessary global analysis and returning two
3635
/// lists, one of the modules that need optimization and another for modules that
3736
/// can simply be copied over from the incr. comp. cache.

0 commit comments

Comments
 (0)