aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp
index c1caafc53..4dc85bb15 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -46,6 +46,9 @@ int main(int argc, char **argv) {
return 1;
}
+ u64 start_time, end_time;
+ start_time = gb_utc_time_now();
+
init_universal_scope();
char *init_filename = argv[1];
@@ -64,6 +67,10 @@ int main(int argc, char **argv) {
if (parse_files(&parser, init_filename) != ParseFile_None)
return 1;
+ end_time = gb_utc_time_now();
+ gb_printf_err("Parser: %lld ms\n", (end_time - start_time)/1000);
+ start_time = gb_utc_time_now();
+
// print_ast(parser.files[0].decls, 0);
Checker checker = {};
@@ -73,13 +80,30 @@ int main(int argc, char **argv) {
check_parsed_files(&checker);
+
+ // end_time = gb_utc_time_now();
+ // gb_printf_err("Checker: %lld ms\n", (end_time - start_time)/1000);
+ // start_time = gb_utc_time_now();
+
#if 1
ssaGen ssa = {};
if (!ssa_gen_init(&ssa, &checker))
return 1;
defer (ssa_gen_destroy(&ssa));
- ssa_gen_code(&ssa);
+ ssa_gen_tree(&ssa);
+
+ // end_time = gb_utc_time_now();
+ // gb_printf_err("ssa tree: %lld ms\n", (end_time - start_time)/1000);
+ // start_time = gb_utc_time_now();
+
+ // TODO(bill): Speedup writing to file for IR code
+ ssa_gen_ir(&ssa);
+
+ // end_time = gb_utc_time_now();
+ // gb_printf_err("ssa ir: %lld ms\n", (end_time - start_time)/1000);
+ // start_time = gb_utc_time_now();
+
char const *output_name = ssa.output_file.filename;
isize base_name_len = gb_path_extension(output_name)-1 - output_name;
@@ -93,6 +117,10 @@ int main(int argc, char **argv) {
if (exit_code != 0)
return exit_code;
+ // end_time = gb_utc_time_now();
+ // gb_printf_err("llvm-opt: %lld ms\n", (end_time - start_time)/1000);
+ // start_time = gb_utc_time_now();
+
gbString lib_str = gb_string_make(gb_heap_allocator(), "-lKernel32.lib");
char lib_str_buf[1024] = {};
gb_for_array(i, parser.system_libraries) {
@@ -116,6 +144,9 @@ int main(int argc, char **argv) {
if (exit_code != 0)
return exit_code;
+ // end_time = gb_utc_time_now();
+ // gb_printf_err("clang: %lld ms\n\n\n", (end_time - start_time)/1000);
+
if (run_output) {
win32_exec_command_line_app("%.*s.exe", cast(int)base_name_len, output_name);
}