mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Add (internal flag) -show-debug-messages
This commit is contained in:
@@ -210,6 +210,8 @@ struct BuildContext {
|
|||||||
bool use_separate_modules;
|
bool use_separate_modules;
|
||||||
bool threaded_checker;
|
bool threaded_checker;
|
||||||
|
|
||||||
|
bool show_debug_messages;
|
||||||
|
|
||||||
u32 cmd_doc_flags;
|
u32 cmd_doc_flags;
|
||||||
Array<String> extra_packages;
|
Array<String> extra_packages;
|
||||||
|
|
||||||
|
|||||||
+6
-4
@@ -2004,7 +2004,7 @@ void add_entity_dependency_from_procedure_parameters(Map<EntityGraphNode *> *M,
|
|||||||
}
|
}
|
||||||
|
|
||||||
Array<EntityGraphNode *> generate_entity_dependency_graph(CheckerInfo *info, gbAllocator allocator) {
|
Array<EntityGraphNode *> generate_entity_dependency_graph(CheckerInfo *info, gbAllocator allocator) {
|
||||||
#define TIME_SECTION(str) do { if (build_context.show_more_timings) timings_start_section(&global_timings, str_lit(str)); } while (0)
|
#define TIME_SECTION(str) do { debugf("[Section] %s\n", str); if (build_context.show_more_timings) timings_start_section(&global_timings, str_lit(str)); } while (0)
|
||||||
|
|
||||||
Map<EntityGraphNode *> M = {}; // Key: Entity *
|
Map<EntityGraphNode *> M = {}; // Key: Entity *
|
||||||
map_init(&M, allocator, info->entities.count);
|
map_init(&M, allocator, info->entities.count);
|
||||||
@@ -4204,7 +4204,7 @@ Array<Entity *> find_entity_path(Entity *start, Entity *end, Map<Entity *> *visi
|
|||||||
|
|
||||||
|
|
||||||
void calculate_global_init_order(Checker *c) {
|
void calculate_global_init_order(Checker *c) {
|
||||||
#define TIME_SECTION(str) do { if (build_context.show_more_timings) timings_start_section(&global_timings, str_lit(str)); } while (0)
|
#define TIME_SECTION(str) do { debugf("[Section] %s\n", str); if (build_context.show_more_timings) timings_start_section(&global_timings, str_lit(str)); } while (0)
|
||||||
|
|
||||||
CheckerInfo *info = &c->info;
|
CheckerInfo *info = &c->info;
|
||||||
|
|
||||||
@@ -4477,6 +4477,8 @@ void check_procedure_bodies(Checker *c) {
|
|||||||
check_proc_info(c, pi, nullptr, nullptr);
|
check_proc_info(c, pi, nullptr, nullptr);
|
||||||
total_bodies_checked.fetch_add(1, std::memory_order_relaxed);
|
total_bodies_checked.fetch_add(1, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
debugf("Total Procedure Bodies Checked: %td\n", total_bodies_checked.load(std::memory_order_relaxed));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4544,7 +4546,7 @@ void check_procedure_bodies(Checker *c) {
|
|||||||
GB_ASSERT(remaining == 0);
|
GB_ASSERT(remaining == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// gb_printf_err("Total Procedure Bodies Checked: %td\n", total_bodies_checked.load(std::memory_order_relaxed));
|
debugf("Total Procedure Bodies Checked: %td\n", total_bodies_checked.load(std::memory_order_relaxed));
|
||||||
|
|
||||||
global_procedure_body_in_worker_queue = false;
|
global_procedure_body_in_worker_queue = false;
|
||||||
}
|
}
|
||||||
@@ -4744,7 +4746,7 @@ void check_unique_package_names(Checker *c) {
|
|||||||
|
|
||||||
|
|
||||||
void check_parsed_files(Checker *c) {
|
void check_parsed_files(Checker *c) {
|
||||||
#define TIME_SECTION(str) do { if (build_context.show_more_timings) timings_start_section(&global_timings, str_lit(str)); } while (0)
|
#define TIME_SECTION(str) do { debugf("[Section] %s\n", str); if (build_context.show_more_timings) timings_start_section(&global_timings, str_lit(str)); } while (0)
|
||||||
|
|
||||||
TIME_SECTION("map full filepaths to scope");
|
TIME_SECTION("map full filepaths to scope");
|
||||||
add_type_info_type(&c->builtin_ctx, t_invalid);
|
add_type_info_type(&c->builtin_ctx, t_invalid);
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ gb_inline void zero_size(void *ptr, isize len) {
|
|||||||
i32 next_pow2(i32 n);
|
i32 next_pow2(i32 n);
|
||||||
i64 next_pow2(i64 n);
|
i64 next_pow2(i64 n);
|
||||||
isize next_pow2_isize(isize n);
|
isize next_pow2_isize(isize n);
|
||||||
|
void debugf(char const *fmt, ...);
|
||||||
|
|
||||||
template <typename U, typename V>
|
template <typename U, typename V>
|
||||||
gb_inline U bit_cast(V &v) { return reinterpret_cast<U &>(v); }
|
gb_inline U bit_cast(V &v) { return reinterpret_cast<U &>(v); }
|
||||||
|
|||||||
+26
-11
@@ -7,6 +7,15 @@
|
|||||||
#include "exact_value.cpp"
|
#include "exact_value.cpp"
|
||||||
#include "build_settings.cpp"
|
#include "build_settings.cpp"
|
||||||
|
|
||||||
|
void debugf(char const *fmt, ...) {
|
||||||
|
if (build_context.show_debug_messages) {
|
||||||
|
gb_printf_err("[DEBUG] ");
|
||||||
|
va_list va;
|
||||||
|
va_start(va, fmt);
|
||||||
|
(void)gb_printf_err_va(fmt, va);
|
||||||
|
va_end(va);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
gb_global Timings global_timings = {0};
|
gb_global Timings global_timings = {0};
|
||||||
|
|
||||||
@@ -601,6 +610,7 @@ enum BuildFlagKind {
|
|||||||
BuildFlag_UseLLD,
|
BuildFlag_UseLLD,
|
||||||
BuildFlag_UseSeparateModules,
|
BuildFlag_UseSeparateModules,
|
||||||
BuildFlag_ThreadedChecker,
|
BuildFlag_ThreadedChecker,
|
||||||
|
BuildFlag_ShowDebugMessages,
|
||||||
BuildFlag_Vet,
|
BuildFlag_Vet,
|
||||||
BuildFlag_VetExtra,
|
BuildFlag_VetExtra,
|
||||||
BuildFlag_UseLLVMApi,
|
BuildFlag_UseLLVMApi,
|
||||||
@@ -724,6 +734,7 @@ bool parse_build_flags(Array<String> args) {
|
|||||||
add_flag(&build_flags, BuildFlag_UseLLD, str_lit("lld"), BuildFlagParam_None, Command__does_build);
|
add_flag(&build_flags, BuildFlag_UseLLD, str_lit("lld"), BuildFlagParam_None, Command__does_build);
|
||||||
add_flag(&build_flags, BuildFlag_UseSeparateModules,str_lit("use-separate-modules"),BuildFlagParam_None, Command__does_build);
|
add_flag(&build_flags, BuildFlag_UseSeparateModules,str_lit("use-separate-modules"),BuildFlagParam_None, Command__does_build);
|
||||||
add_flag(&build_flags, BuildFlag_ThreadedChecker, str_lit("threaded-checker"), BuildFlagParam_None, Command__does_check);
|
add_flag(&build_flags, BuildFlag_ThreadedChecker, str_lit("threaded-checker"), BuildFlagParam_None, Command__does_check);
|
||||||
|
add_flag(&build_flags, BuildFlag_ShowDebugMessages, str_lit("show-debug-messages"), BuildFlagParam_None, Command_all);
|
||||||
add_flag(&build_flags, BuildFlag_Vet, str_lit("vet"), BuildFlagParam_None, Command__does_check);
|
add_flag(&build_flags, BuildFlag_Vet, str_lit("vet"), BuildFlagParam_None, Command__does_check);
|
||||||
add_flag(&build_flags, BuildFlag_VetExtra, str_lit("vet-extra"), BuildFlagParam_None, Command__does_check);
|
add_flag(&build_flags, BuildFlag_VetExtra, str_lit("vet-extra"), BuildFlagParam_None, Command__does_check);
|
||||||
add_flag(&build_flags, BuildFlag_UseLLVMApi, str_lit("llvm-api"), BuildFlagParam_None, Command__does_build);
|
add_flag(&build_flags, BuildFlag_UseLLVMApi, str_lit("llvm-api"), BuildFlagParam_None, Command__does_build);
|
||||||
@@ -1212,6 +1223,10 @@ bool parse_build_flags(Array<String> args) {
|
|||||||
build_context.threaded_checker = true;
|
build_context.threaded_checker = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BuildFlag_ShowDebugMessages:
|
||||||
|
build_context.show_debug_messages = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case BuildFlag_Vet:
|
case BuildFlag_Vet:
|
||||||
build_context.vet = true;
|
build_context.vet = true;
|
||||||
break;
|
break;
|
||||||
@@ -1951,15 +1966,15 @@ bool check_env(void) {
|
|||||||
|
|
||||||
|
|
||||||
int main(int arg_count, char const **arg_ptr) {
|
int main(int arg_count, char const **arg_ptr) {
|
||||||
|
#define TIME_SECTION(str) do { debugf("[Section] %s\n", str); timings_start_section(&global_timings, str_lit(str)); } while (0)
|
||||||
|
|
||||||
if (arg_count < 2) {
|
if (arg_count < 2) {
|
||||||
usage(make_string_c(arg_ptr[0]));
|
usage(make_string_c(arg_ptr[0]));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Timings *timings = &global_timings;
|
timings_init(&global_timings, str_lit("Total Time"), 2048);
|
||||||
|
defer (timings_destroy(&global_timings));
|
||||||
timings_init(timings, str_lit("Total Time"), 2048);
|
|
||||||
defer (timings_destroy(timings));
|
|
||||||
|
|
||||||
arena_init(&permanent_arena, heap_allocator());
|
arena_init(&permanent_arena, heap_allocator());
|
||||||
temp_allocator_init(&temporary_allocator_data, 16*1024*1024);
|
temp_allocator_init(&temporary_allocator_data, 16*1024*1024);
|
||||||
@@ -2123,7 +2138,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
init_universal();
|
init_universal();
|
||||||
// TODO(bill): prevent compiling without a linker
|
// TODO(bill): prevent compiling without a linker
|
||||||
|
|
||||||
timings_start_section(timings, str_lit("parse files"));
|
TIME_SECTION("parse files");
|
||||||
|
|
||||||
Parser parser = {0};
|
Parser parser = {0};
|
||||||
if (!init_parser(&parser)) {
|
if (!init_parser(&parser)) {
|
||||||
@@ -2141,7 +2156,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
|
|
||||||
temp_allocator_free_all(&temporary_allocator_data);
|
temp_allocator_free_all(&temporary_allocator_data);
|
||||||
|
|
||||||
timings_start_section(timings, str_lit("type check"));
|
TIME_SECTION("type check");
|
||||||
|
|
||||||
Checker checker = {0};
|
Checker checker = {0};
|
||||||
|
|
||||||
@@ -2173,10 +2188,10 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (build_context.query_data_set_settings.ok) {
|
if (build_context.query_data_set_settings.ok) {
|
||||||
generate_and_print_query_data(&checker, timings);
|
generate_and_print_query_data(&checker, &global_timings);
|
||||||
} else {
|
} else {
|
||||||
if (build_context.show_timings) {
|
if (build_context.show_timings) {
|
||||||
show_timings(&checker, timings);
|
show_timings(&checker, &global_timings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2191,7 +2206,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
timings_start_section(timings, str_lit("LLVM API Code Gen"));
|
TIME_SECTION("LLVM API Code Gen");
|
||||||
lbGenerator gen = {};
|
lbGenerator gen = {};
|
||||||
if (!lb_init_generator(&gen, &checker)) {
|
if (!lb_init_generator(&gen, &checker)) {
|
||||||
return 1;
|
return 1;
|
||||||
@@ -2206,7 +2221,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
i32 result = linker_stage(&gen);
|
i32 result = linker_stage(&gen);
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
if (build_context.show_timings) {
|
if (build_context.show_timings) {
|
||||||
show_timings(&checker, timings);
|
show_timings(&checker, &global_timings);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -2214,7 +2229,7 @@ int main(int arg_count, char const **arg_ptr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (build_context.show_timings) {
|
if (build_context.show_timings) {
|
||||||
show_timings(&checker, timings);
|
show_timings(&checker, &global_timings);
|
||||||
}
|
}
|
||||||
|
|
||||||
remove_temp_files(&gen);
|
remove_temp_files(&gen);
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ void timings__stop_current_section(Timings *t) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void timings_start_section(Timings *t, String const &label) {
|
void timings_start_section(Timings *t, String const &label) {
|
||||||
// gb_printf_err("[%.*s]\n", LIT(label));
|
|
||||||
timings__stop_current_section(t);
|
timings__stop_current_section(t);
|
||||||
array_add(&t->sections, make_time_stamp(label));
|
array_add(&t->sections, make_time_stamp(label));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user