From 79f575ae8e7dda58a842dda3690b691e942ea86e Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Wed, 14 Sep 2016 19:35:13 +0100 Subject: #import "" as namespace --- src/codegen/print_llvm.cpp | 81 ++++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 32 deletions(-) (limited to 'src/codegen/print_llvm.cpp') diff --git a/src/codegen/print_llvm.cpp b/src/codegen/print_llvm.cpp index 7ec3b369d..1015207c4 100644 --- a/src/codegen/print_llvm.cpp +++ b/src/codegen/print_llvm.cpp @@ -744,7 +744,7 @@ void ssa_print_instr(ssaFileBuffer *f, ssaModule *m, ssaValue *value) { void ssa_print_proc(ssaFileBuffer *f, ssaModule *m, ssaProcedure *proc) { if (proc->body == NULL) { - ssa_fprintf(f, "\ndeclare "); + ssa_fprintf(f, "declare "); } else { ssa_fprintf(f, "\ndefine "); } @@ -844,47 +844,64 @@ void ssa_print_llvm_ir(ssaFileBuffer *f, ssaModule *m) { gb_for_array(member_index, m->members.entries) { auto *entry = &m->members.entries[member_index]; ssaValue *v = entry->value; - switch (v->kind) { - case ssaValue_TypeName: - ssa_print_type_name(f, m, v); - break; + if (v->kind != ssaValue_TypeName) { + continue; } + ssa_print_type_name(f, m, v); } gb_for_array(member_index, m->members.entries) { auto *entry = &m->members.entries[member_index]; ssaValue *v = entry->value; - switch (v->kind) { - case ssaValue_Global: { - auto *g = &v->Global; - ssa_print_encoded_global(f, g->entity->token.string); - ssa_fprintf(f, " = "); - if (g->is_thread_local) { - ssa_fprintf(f, "thread_local "); - } - if (g->is_constant) { - if (g->is_private) { - ssa_fprintf(f, "private "); - } - ssa_fprintf(f, "constant "); - } else { - ssa_fprintf(f, "global "); - } + if (v->kind != ssaValue_Proc) { + continue; + } + if (v->Proc.body == NULL) { + ssa_print_proc(f, m, &v->Proc); + } + } + gb_for_array(member_index, m->members.entries) { + auto *entry = &m->members.entries[member_index]; + ssaValue *v = entry->value; + if (v->kind != ssaValue_Proc) { + continue; + } + if (v->Proc.body != NULL) { + ssa_print_proc(f, m, &v->Proc); + } + } - ssa_print_type(f, m->sizes, g->entity->type); - ssa_fprintf(f, " "); - if (g->value != NULL) { - ssa_print_value(f, m, g->value, g->entity->type); - } else { - ssa_fprintf(f, "zeroinitializer"); + + gb_for_array(member_index, m->members.entries) { + auto *entry = &m->members.entries[member_index]; + ssaValue *v = entry->value; + if (v->kind != ssaValue_Global) { + continue; + } + auto *g = &v->Global; + ssa_print_encoded_global(f, g->entity->token.string); + ssa_fprintf(f, " = "); + if (g->is_thread_local) { + ssa_fprintf(f, "thread_local "); + } + if (g->is_constant) { + if (g->is_private) { + ssa_fprintf(f, "private "); } - ssa_fprintf(f, "\n"); - } break; + ssa_fprintf(f, "constant "); + } else { + ssa_fprintf(f, "global "); + } - case ssaValue_Proc: { - ssa_print_proc(f, m, &v->Proc); - } break; + + ssa_print_type(f, m->sizes, g->entity->type); + ssa_fprintf(f, " "); + if (g->value != NULL) { + ssa_print_value(f, m, g->value, g->entity->type); + } else { + ssa_fprintf(f, "zeroinitializer"); } + ssa_fprintf(f, "\n"); } } -- cgit v1.2.3