Some iprof thing
This commit is contained in:
parent
a2c632f722
commit
7f8aaf0e53
42
first.jai
42
first.jai
@ -34,6 +34,7 @@ ascii_car : string = #string DONE
|
|||||||
|
|
||||||
DONE
|
DONE
|
||||||
|
|
||||||
|
Iprof :: #import "Iprof"(IMPORT_MODE = .METAPROGRAM);
|
||||||
|
|
||||||
#run {
|
#run {
|
||||||
print("%\n", ascii_car);
|
print("%\n", ascii_car);
|
||||||
@ -107,6 +108,7 @@ DONE
|
|||||||
|
|
||||||
add_build_file("src/platform_specific/main_web.jai", w);
|
add_build_file("src/platform_specific/main_web.jai", w);
|
||||||
add_build_string("HAS_TACOMA :: false;", w);
|
add_build_string("HAS_TACOMA :: false;", w);
|
||||||
|
add_build_string("HAS_IPROF :: false;", w);
|
||||||
|
|
||||||
while true {
|
while true {
|
||||||
message := compiler_wait_for_message();
|
message := compiler_wait_for_message();
|
||||||
@ -148,13 +150,51 @@ DONE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
w := get_current_workspace();
|
set_build_options_dc(.{do_output=false});
|
||||||
|
|
||||||
|
current_w := get_current_workspace();
|
||||||
|
root_opts := get_build_options();
|
||||||
|
w := compiler_create_workspace("Target");
|
||||||
|
opts := get_build_options(w);
|
||||||
|
copy_commonly_propagated_fields(*opts, *root_opts);
|
||||||
|
opts.cpu_target = root_opts.cpu_target;
|
||||||
|
opts.os_target = root_opts.os_target;
|
||||||
|
opts.output_executable_name = root_opts.output_executable_name;
|
||||||
|
set_build_options(opts, w);
|
||||||
|
iprof_plugin: *Iprof.My_Plugin;
|
||||||
|
|
||||||
|
profile :: true;
|
||||||
|
|
||||||
|
if profile {
|
||||||
|
iprof_plugin = cast(*Iprof.My_Plugin) Iprof.get_plugin();
|
||||||
|
iprof_plugin.workspace = w;
|
||||||
|
|
||||||
|
// Set options
|
||||||
|
iprof_plugin.instrument_modules = true;
|
||||||
|
iprof_plugin.min_size = 100; // Hitting MAX_PROFILING_ZONES with the default of 30, so bumped up. What is the correct thing to do?
|
||||||
|
iprof_plugin.csv_output_filename = "iprof_report.csv"; // Disable this if we don't want to output the report.
|
||||||
|
|
||||||
|
iprof_plugin.before_intercept(iprof_plugin, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
compiler_begin_intercept(w);
|
||||||
if hasTacoma {
|
if hasTacoma {
|
||||||
add_build_string("HAS_TACOMA :: true;", w);
|
add_build_string("HAS_TACOMA :: true;", w);
|
||||||
} else {
|
} else {
|
||||||
add_build_string("HAS_TACOMA :: false;", w);
|
add_build_string("HAS_TACOMA :: false;", w);
|
||||||
}
|
}
|
||||||
|
iprof_plugin.add_source(iprof_plugin);
|
||||||
add_build_file("src/platform_specific/main_native.jai", w);
|
add_build_file("src/platform_specific/main_native.jai", w);
|
||||||
|
|
||||||
|
while true {
|
||||||
|
message := compiler_wait_for_message();
|
||||||
|
iprof_plugin.message(iprof_plugin, message);
|
||||||
|
if message.kind == .COMPLETE then break;
|
||||||
|
}
|
||||||
|
compiler_end_intercept(w);
|
||||||
|
iprof_plugin.finish(iprof_plugin);
|
||||||
|
iprof_plugin.shutdown(iprof_plugin);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user