1
Fork 0

Add comments to Message and WorkItem.

This is particularly useful for `Message`.
This commit is contained in:
Nicholas Nethercote 2023-06-20 12:57:38 +10:00
parent 88cd8f9324
commit a521ba400d

View file

@ -731,6 +731,7 @@ impl<B: WriteBackendMethods> WorkItem<B> {
} }
} }
/// A result produced by the backend.
pub(crate) enum WorkItemResult<B: WriteBackendMethods> { pub(crate) enum WorkItemResult<B: WriteBackendMethods> {
Compiled(CompiledModule), Compiled(CompiledModule),
NeedsLink(ModuleCodegen<B::Module>), NeedsLink(ModuleCodegen<B::Module>),
@ -923,21 +924,34 @@ fn finish_intra_module_work<B: ExtraBackendMethods>(
} }
} }
/// Messages sent to the coordinator.
pub(crate) enum Message<B: WriteBackendMethods> { pub(crate) enum Message<B: WriteBackendMethods> {
/// A jobserver token has become available. Sent from the jobserver helper
/// thread.
Token(io::Result<Acquired>), Token(io::Result<Acquired>),
WorkItem {
result: Result<WorkItemResult<B>, Option<WorkerFatalError>>, /// The backend has finished processing a work item for a codegen unit.
worker_id: usize, /// Sent from a backend worker thread.
}, WorkItem { result: Result<WorkItemResult<B>, Option<WorkerFatalError>>, worker_id: usize },
CodegenDone {
llvm_work_item: WorkItem<B>, /// The frontend has finished generating something (backend IR or a
cost: u64, /// post-LTO artifact) for a codegen unit, and it should be passed to the
}, /// backend. Sent from the main thread.
CodegenDone { llvm_work_item: WorkItem<B>, cost: u64 },
/// Similar to `CodegenDone`, but for reusing a pre-LTO artifact
/// Sent from the main thread.
AddImportOnlyModule { AddImportOnlyModule {
module_data: SerializedModule<B::ModuleBuffer>, module_data: SerializedModule<B::ModuleBuffer>,
work_product: WorkProduct, work_product: WorkProduct,
}, },
/// The frontend has finished generating everything for all codegen units.
/// Sent from the main thread.
CodegenComplete, CodegenComplete,
/// Some normal-ish compiler error occurred, and codegen should be wound
/// down. Sent from the main thread.
CodegenAborted, CodegenAborted,
} }