From 3ecf2a46911fa69bd25cd56ed1ba6acf926656d9 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 24 Sep 2020 22:51:55 -0500 Subject: [PATCH] added basics of timing the different stages of compilation --- Makefile | 9 +++++-- include/bh.h | 32 ++++++++++++++++++++++ misc/onyx.vim | 2 +- onyx | Bin 487356 -> 487708 bytes src/onyx.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 113 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 302e4efa..b073230e 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ RELEASE=1 +TIME=0 OBJ_FILES=\ build/onyxlex.o \ @@ -25,6 +26,10 @@ else endif endif +ifeq ($(TIME), 1) + TIMEFLAG=-DREPORT_TIMES=1 +endif + INCLUDES=-I./include LIBS= TARGET=./onyx @@ -40,10 +45,10 @@ else endif build/%.o: src/%.c include/bh.h - $(CC) $(FLAGS) -c $< -o $@ $(INCLUDES) + $(CC) $(TIMEFLAG) $(FLAGS) -c $< -o $@ $(INCLUDES) $(TARGET): $(OBJ_FILES) - $(CC) $(FLAGS) $(OBJ_FILES) -o $@ $(LIBS) + $(CC) $(TIMEFLAG) $(FLAGS) $(OBJ_FILES) -o $@ $(LIBS) install: $(TARGET) core/* cp $(TARGET) /usr/bin/ diff --git a/include/bh.h b/include/bh.h index ffb5379f..c179531b 100644 --- a/include/bh.h +++ b/include/bh.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -769,6 +770,12 @@ BH_ALLOCATOR_PROC(bh_managed_heap_allocator_proc); +//------------------------------------------------------------------------------ +// TIME / DURATION +//------------------------------------------------------------------------------ +u64 bh_time_curr(); +u64 bh_time_duration(u64 old); + @@ -2263,6 +2270,31 @@ void bh_imap_clear(bh_imap* imap) { #endif // ifndef BH_NO_IMAP + + + + + + +u64 bh_time_curr() { + struct timespec spec; + clock_gettime(CLOCK_MONOTONIC, &spec); + + time_t sec = spec.tv_sec; + u64 ms = spec.tv_nsec / 1000000; + if (ms > 999) { + sec++; + ms = 0; + } + + return sec * 1000 + ms; +} + +u64 bh_time_duration(u64 old) { + u64 curr = bh_time_curr(); + return curr - old; +} + #endif // ifdef BH_DEFINE #endif // ifndef BH_H diff --git a/misc/onyx.vim b/misc/onyx.vim index 2afb167e..e06ab001 100644 --- a/misc/onyx.vim +++ b/misc/onyx.vim @@ -37,7 +37,7 @@ syn keyword onyxCommentStart contained TODO NOTE BUG HACK syn region onyxComment start="//" end="$" keepend contains=onyxCommentStart syn region onyxComment start="/\*" end="\*/" contains=onyxCommentStart -syn match onyxDefinitionGroup "\<[a-zA-Z_][a-zA-Z0-9_]*\> *::" contains=onyxDefinition +syn match onyxDefinitionGroup "\<[a-zA-Z_][a-zA-Z0-9_]*\> *:" contains=onyxDefinition syn match onyxDefinition "\<[a-zA-Z_][a-zA-Z0-9_]*\>" contained syn match onyxDirective "\#[a-zA-Z_]\+" diff --git a/onyx b/onyx index 70b0a6920e7fb5882647712aa03d017298cdd3bb..2579a91eb8674956fb5d1e13956a91bd4dfd259b 100755 GIT binary patch delta 79003 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 Ad;kCd delta 78814 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 diff --git a/src/onyx.c b/src/onyx.c index 5036c03c..a5a6d789 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -20,6 +20,38 @@ #endif + + +#ifdef REPORT_TIMES +// CLEANUP: Move this to another file +typedef struct TimerStackElem { + char* label; + u64 time; +} TimerStackElem; + +static bh_arr(TimerStackElem) global_timer_stack; + +void timer_stack_init() { + global_timer_stack = NULL; + bh_arr_new(global_heap_allocator, global_timer_stack, 4); +} + +void timer_stack_push(char* label) { + TimerStackElem elem; + elem.label = label; + elem.time = bh_time_curr(); + bh_arr_push(global_timer_stack, elem); +} + +void timer_stack_pop() { + TimerStackElem elem = bh_arr_pop(global_timer_stack); + u64 duration = bh_time_duration(elem.time); + bh_printf("[Time] %s took %lms.\n", elem.label, duration); +} +#endif + + + static const char* docstring = "Onyx compiler version " VERSION "\n" "\n" "The compiler for the Onyx programming language.\n" @@ -329,6 +361,10 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res static CompilerProgress process_source_file(CompilerState* compiler_state, char* filename) { if (bh_table_has(bh_file_contents, compiler_state->loaded_files, filename)) return ONYX_COMPILER_PROGRESS_SUCCESS; +#ifdef REPORT_TIMES + timer_stack_push(bh_aprintf(global_heap_allocator, "Parsing '%s'", filename)); +#endif + bh_file file; bh_file_error err = bh_file_open(&file, filename); @@ -360,6 +396,10 @@ static CompilerProgress process_source_file(CompilerState* compiler_state, char* ParseResults results = parse_source_file(compiler_state, &fc); merge_parse_results(compiler_state, &results); +#ifdef REPORT_TIMES + timer_stack_pop(); +#endif + if (onyx_has_errors()) { return ONYX_COMPILER_PROGRESS_FAILED_PARSE; } else { @@ -370,6 +410,10 @@ static CompilerProgress process_source_file(CompilerState* compiler_state, char* static i32 onyx_compile(CompilerState* compiler_state) { +#ifdef REPORT_TIMES + timer_stack_push("Parsing"); +#endif + // NOTE: While the queue is not empty, process the next file while (!bh_arr_is_empty(compiler_state->queued_files)) { CompilerProgress result = process_source_file(compiler_state, (char *) compiler_state->queued_files[0]); @@ -380,6 +424,13 @@ static i32 onyx_compile(CompilerState* compiler_state) { bh_arr_fastdelete(compiler_state->queued_files, 0); } +#ifdef REPORT_TIMES + timer_stack_pop(); + + timer_stack_push("Checking semantics"); + timer_stack_push("Initializing builtins"); +#endif + initialize_builtins(compiler_state->ast_alloc, &compiler_state->prog_info); if (onyx_has_errors()) { return ONYX_COMPILER_PROGRESS_FAILED_SEMPASS; @@ -400,6 +451,10 @@ static i32 onyx_compile(CompilerState* compiler_state) { sizeof(Entity), sort_entities); +#ifdef REPORT_TIMES + timer_stack_pop(); +#endif + // NOTE: Check types and semantic rules if (compiler_state->options->verbose_output) bh_printf("[Checking semantics]\n"); @@ -407,6 +462,10 @@ static i32 onyx_compile(CompilerState* compiler_state) { onyx_sempass_init(compiler_state->sp_alloc, compiler_state->ast_alloc); onyx_sempass(&compiler_state->prog_info); +#ifdef REPORT_TIMES + timer_stack_pop(); +#endif + if (onyx_has_errors()) { return ONYX_COMPILER_PROGRESS_FAILED_SEMPASS; } @@ -423,6 +482,11 @@ static i32 onyx_compile(CompilerState* compiler_state) { if (compiler_state->options->verbose_output) bh_printf("[Generating WASM]\n"); +#ifdef REPORT_TIMES + timer_stack_push("Code generation"); + timer_stack_push("Generating WASM"); +#endif + compiler_state->wasm_mod = onyx_wasm_module_create(compiler_state->options->allocator); onyx_wasm_module_compile(&compiler_state->wasm_mod, &compiler_state->prog_info); @@ -430,6 +494,10 @@ static i32 onyx_compile(CompilerState* compiler_state) { return ONYX_COMPILER_PROGRESS_FAILED_BINARY_GEN; } +#ifdef REPORT_TIMES + timer_stack_pop(); + timer_stack_push("Write to file"); +#endif // NOTE: Output to file bh_file output_file; @@ -442,6 +510,11 @@ static i32 onyx_compile(CompilerState* compiler_state) { onyx_wasm_module_write_to_file(&compiler_state->wasm_mod, output_file); +#ifdef REPORT_TIMES + timer_stack_pop(); + timer_stack_pop(); +#endif + return ONYX_COMPILER_PROGRESS_SUCCESS; } -- 2.25.1