aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 5ee62692fe..5615808ee2 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -3514,6 +3514,17 @@ pub fn performAllTheWork(
try processOneJob(comp, work_item, main_progress_node);
continue;
}
+ if (comp.module) |zcu| {
+ // If there's no work queued, check if there's anything outdated
+ // which we need to work on, and queue it if so.
+ if (try zcu.findOutdatedToAnalyze()) |outdated| {
+ switch (outdated.unwrap()) {
+ .decl => |decl| try comp.work_queue.writeItem(.{ .analyze_decl = decl }),
+ .func => |func| try comp.work_queue.writeItem(.{ .codegen_func = func }),
+ }
+ continue;
+ }
+ }
break;
}