diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-06-20 12:57:38 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-06-22 08:07:59 +1000 |
| commit | a521ba400dbfb2e9907238a4e7a5650d22bf2068 (patch) | |
| tree | 3a02d3b247e8a3c0049f8fc7173f0a3434c5a35d /compiler/rustc_codegen_ssa/src | |
| parent | 88cd8f93247a09fb0c2e43e82e0dfedea23e9642 (diff) | |
| download | rust-a521ba400dbfb2e9907238a4e7a5650d22bf2068.tar.gz rust-a521ba400dbfb2e9907238a4e7a5650d22bf2068.zip | |
Add comments to `Message` and `WorkItem`.
This is particularly useful for `Message`.
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/back/write.rs | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs index 7eb6916ec84..9f4d767067e 100644 --- a/compiler/rustc_codegen_ssa/src/back/write.rs +++ b/compiler/rustc_codegen_ssa/src/back/write.rs @@ -731,6 +731,7 @@ impl<B: WriteBackendMethods> WorkItem<B> { } } +/// A result produced by the backend. pub(crate) enum WorkItemResult<B: WriteBackendMethods> { Compiled(CompiledModule), 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> { + /// A jobserver token has become available. Sent from the jobserver helper + /// thread. Token(io::Result<Acquired>), - WorkItem { - result: Result<WorkItemResult<B>, Option<WorkerFatalError>>, - worker_id: usize, - }, - CodegenDone { - llvm_work_item: WorkItem<B>, - cost: u64, - }, + + /// The backend has finished processing a work item for a codegen unit. + /// Sent from a backend worker thread. + WorkItem { result: Result<WorkItemResult<B>, Option<WorkerFatalError>>, worker_id: usize }, + + /// The frontend has finished generating something (backend IR or a + /// 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 { module_data: SerializedModule<B::ModuleBuffer>, work_product: WorkProduct, }, + + /// The frontend has finished generating everything for all codegen units. + /// Sent from the main thread. CodegenComplete, + + /// Some normal-ish compiler error occurred, and codegen should be wound + /// down. Sent from the main thread. CodegenAborted, } |
