about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2023-06-20 12:57:38 +1000
committerNicholas Nethercote <n.nethercote@gmail.com>2023-06-22 08:07:59 +1000
commita521ba400dbfb2e9907238a4e7a5650d22bf2068 (patch)
tree3a02d3b247e8a3c0049f8fc7173f0a3434c5a35d /compiler/rustc_codegen_ssa
parent88cd8f93247a09fb0c2e43e82e0dfedea23e9642 (diff)
downloadrust-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')
-rw-r--r--compiler/rustc_codegen_ssa/src/back/write.rs30
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,
 }