Tagged unions memory layout change; begin demo 002

This commit is contained in:
Ginger Bill
2016-09-04 22:50:17 +01:00
parent c2e3c3801a
commit ae72b3c5bd
7 changed files with 142 additions and 83 deletions

View File

@@ -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);
}