Browse Source

Add (internal flag) -show-debug-messages

gingerBill 4 years ago
parent
commit
698eeaf7c3
5 changed files with 35 additions and 17 deletions
  1. 2 0
      src/build_settings.cpp
  2. 6 4
      src/checker.cpp
  3. 1 1
      src/common.cpp
  4. 26 11
      src/main.cpp
  5. 0 1
      src/timings.cpp

+ 2 - 0
src/build_settings.cpp

@@ -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
src/checker.cpp

@@ -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
src/common.cpp

@@ -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
src/main.cpp

@@ -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(timings, str_lit("Total Time"), 2048);
-	defer (timings_destroy(timings));
+	timings_init(&global_timings, str_lit("Total Time"), 2048);
+	defer (timings_destroy(&global_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);

+ 0 - 1
src/timings.cpp

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