authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-05-24 10:35:08-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-05-27 20:56:48-07:00
logb27fdf92fb366aa7b28235822c7871ab9eae9859
tree73f312be237e7edf4ed44a8ab28ac993045d58e5
parent1cf1cb6ae00561b81b4e0863cff43c3fdd28a4a0

Compilation: only create progress nodes for work actually being done


1 files changed, 10 insertions(+), 16 deletions(-)

src/Compilation.zig+10-16
...@@ -3254,25 +3254,13 @@ pub fn performAllTheWork(...@@ -3254,25 +3254,13 @@ pub fn performAllTheWork(
3254 // (at least for now) single-threaded main work queue. However, C object compilation3254 // (at least for now) single-threaded main work queue. However, C object compilation
3255 // only needs to be finished by the end of this function.3255 // only needs to be finished by the end of this function.
32563256
3257 const zir_prog_node = main_progress_node.start("AST Lowering", 0);
3258 defer zir_prog_node.end();
3259
3260 const wasm_prog_node = main_progress_node.start("Compile Autodocs", 0);
3261 defer wasm_prog_node.end();
3262
3263 const c_obj_prog_node = main_progress_node.start("Compile C Objects", comp.c_source_files.len);
3264 defer c_obj_prog_node.end();
3265
3266 const win32_resource_prog_node = main_progress_node.start("Compile Win32 Resources", comp.rc_source_files.len);
3267 defer win32_resource_prog_node.end();
3268
3269 comp.work_queue_wait_group.reset();3257 comp.work_queue_wait_group.reset();
3270 defer comp.work_queue_wait_group.wait();3258 defer comp.work_queue_wait_group.wait();
32713259
3272 if (!build_options.only_c and !build_options.only_core_functionality) {3260 if (!build_options.only_c and !build_options.only_core_functionality) {
3273 if (comp.docs_emit != null) {3261 if (comp.docs_emit != null) {
3274 comp.thread_pool.spawnWg(&comp.work_queue_wait_group, workerDocsCopy, .{comp});3262 comp.thread_pool.spawnWg(&comp.work_queue_wait_group, workerDocsCopy, .{comp});
3275 comp.work_queue_wait_group.spawnManager(workerDocsWasm, .{ comp, wasm_prog_node });3263 comp.work_queue_wait_group.spawnManager(workerDocsWasm, .{ comp, main_progress_node });
3276 }3264 }
3277 }3265 }
32783266
...@@ -3280,6 +3268,9 @@ pub fn performAllTheWork(...@@ -3280,6 +3268,9 @@ pub fn performAllTheWork(
3280 const astgen_frame = tracy.namedFrame("astgen");3268 const astgen_frame = tracy.namedFrame("astgen");
3281 defer astgen_frame.end();3269 defer astgen_frame.end();
32823270
3271 const zir_prog_node = main_progress_node.start("AST Lowering", 0);
3272 defer zir_prog_node.end();
3273
3283 comp.astgen_wait_group.reset();3274 comp.astgen_wait_group.reset();
3284 defer comp.astgen_wait_group.wait();3275 defer comp.astgen_wait_group.wait();
32853276
...@@ -3323,14 +3314,14 @@ pub fn performAllTheWork(...@@ -3323,14 +3314,14 @@ pub fn performAllTheWork(
33233314
3324 while (comp.c_object_work_queue.readItem()) |c_object| {3315 while (comp.c_object_work_queue.readItem()) |c_object| {
3325 comp.thread_pool.spawnWg(&comp.work_queue_wait_group, workerUpdateCObject, .{3316 comp.thread_pool.spawnWg(&comp.work_queue_wait_group, workerUpdateCObject, .{
3326 comp, c_object, c_obj_prog_node,3317 comp, c_object, main_progress_node,
3327 });3318 });
3328 }3319 }
33293320
3330 if (!build_options.only_core_functionality) {3321 if (!build_options.only_core_functionality) {
3331 while (comp.win32_resource_work_queue.readItem()) |win32_resource| {3322 while (comp.win32_resource_work_queue.readItem()) |win32_resource| {
3332 comp.thread_pool.spawnWg(&comp.work_queue_wait_group, workerUpdateWin32Resource, .{3323 comp.thread_pool.spawnWg(&comp.work_queue_wait_group, workerUpdateWin32Resource, .{
3333 comp, win32_resource, win32_resource_prog_node,3324 comp, win32_resource, main_progress_node,
3334 });3325 });
3335 }3326 }
3336 }3327 }
...@@ -3800,7 +3791,10 @@ fn docsCopyModule(comp: *Compilation, module: *Package.Module, name: []const u8,...@@ -3800,7 +3791,10 @@ fn docsCopyModule(comp: *Compilation, module: *Package.Module, name: []const u8,
3800 }3791 }
3801}3792}
38023793
3803fn workerDocsWasm(comp: *Compilation, prog_node: std.Progress.Node) void {3794fn workerDocsWasm(comp: *Compilation, parent_prog_node: std.Progress.Node) void {
3795 const prog_node = parent_prog_node.start("Compile Autodocs", 0);
3796 defer prog_node.end();
3797
3804 workerDocsWasmFallible(comp, prog_node) catch |err| {3798 workerDocsWasmFallible(comp, prog_node) catch |err| {
3805 comp.lockAndSetMiscFailure(.docs_wasm, "unable to build autodocs: {s}", .{3799 comp.lockAndSetMiscFailure(.docs_wasm, "unable to build autodocs: {s}", .{
3806 @errorName(err),3800 @errorName(err),