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(
32543254 // (at least for now) single-threaded main work queue. However, C object compilation
32553255 // 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
32693257 comp.work_queue_wait_group.reset();
32703258 defer comp.work_queue_wait_group.wait();
32713259
32723260 if (!build_options.only_c and !build_options.only_core_functionality) {
32733261 if (comp.docs_emit != null) {
32743262 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 });
32763264 }
32773265 }
32783266
......@@ -3280,6 +3268,9 @@ pub fn performAllTheWork(
32803268 const astgen_frame = tracy.namedFrame("astgen");
32813269 defer astgen_frame.end();
32823270
3271 const zir_prog_node = main_progress_node.start("AST Lowering", 0);
3272 defer zir_prog_node.end();
3273
32833274 comp.astgen_wait_group.reset();
32843275 defer comp.astgen_wait_group.wait();
32853276
......@@ -3323,14 +3314,14 @@ pub fn performAllTheWork(
33233314
33243315 while (comp.c_object_work_queue.readItem()) |c_object| {
33253316 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,
33273318 });
33283319 }
33293320
33303321 if (!build_options.only_core_functionality) {
33313322 while (comp.win32_resource_work_queue.readItem()) |win32_resource| {
33323323 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,
33343325 });
33353326 }
33363327 }
......@@ -3800,7 +3791,10 @@ fn docsCopyModule(comp: *Compilation, module: *Package.Module, name: []const u8,
38003791 }
38013792}
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
38043798 workerDocsWasmFallible(comp, prog_node) catch |err| {
38053799 comp.lockAndSetMiscFailure(.docs_wasm, "unable to build autodocs: {s}", .{
38063800 @errorName(err),