diff options
Diffstat (limited to 'src/ir_print.cpp')
| -rw-r--r-- | src/ir_print.cpp | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/src/ir_print.cpp b/src/ir_print.cpp index c6fb56616..58e89dbf6 100644 --- a/src/ir_print.cpp +++ b/src/ir_print.cpp @@ -275,7 +275,7 @@ void ir_print_type(irFileBuffer *f, irModule *m, Type *t) { case Type_DynamicArray: ir_fprintf(f, "{"); ir_print_type(f, m, t->DynamicArray.elem); - ir_fprintf(f, "*, i%lld, i%lld,", word_bits, word_bits); + ir_fprintf(f, "*, i%lld, i%lld, ", word_bits, word_bits); ir_print_type(f, m, t_allocator); ir_fprintf(f, "}"); return; @@ -523,7 +523,7 @@ void ir_print_exact_value(irFileBuffer *f, irModule *m, ExactValue value, Type * if (!has_defaults) { ir_fprintf(f, "zeroinitializer"); } else { - ir_print_compound_element(f, m, empty_exact_value, type); + ir_print_exact_value(f, m, empty_exact_value, type); } break; } @@ -881,9 +881,6 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) { case irInstr_Store: { Type *type = type_deref(ir_type(instr->Store.address)); ir_fprintf(f, "store "); - if (instr->Store.atomic) { - ir_fprintf(f, "atomic "); - } ir_print_type(f, m, type); ir_fprintf(f, " "); ir_print_value(f, m, instr->Store.value, type); @@ -891,29 +888,17 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) { ir_print_type(f, m, type); ir_fprintf(f, "* "); ir_print_value(f, m, instr->Store.address, type); - if (instr->Store.atomic) { - // TODO(bill): Do ordering - ir_fprintf(f, " unordered"); - ir_fprintf(f, ", align %lld\n", type_align_of(m->allocator, type)); - } ir_fprintf(f, "\n"); } break; case irInstr_Load: { Type *type = instr->Load.type; ir_fprintf(f, "%%%d = load ", value->index); - // if (is_type_atomic(type)) { - // ir_fprintf(f, "atomic "); - // } ir_print_type(f, m, type); ir_fprintf(f, ", "); ir_print_type(f, m, type); ir_fprintf(f, "* "); ir_print_value(f, m, instr->Load.address, type); - // if (is_type_atomic(type)) { - // TODO(bill): Do ordering - // ir_fprintf(f, " unordered"); - // } ir_fprintf(f, ", align %lld\n", type_align_of(m->allocator, type)); } break; @@ -1409,7 +1394,7 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) { if (param_index > 0) ir_fprintf(f, ", "); ir_print_type(f, m, t_context_ptr); - ir_fprintf(f, " noalias nonnull"); + ir_fprintf(f, " noalias nonnull "); ir_print_value(f, m, call->context_ptr, t_context_ptr); } ir_fprintf(f, ")\n"); @@ -1568,26 +1553,27 @@ void ir_print_instr(irFileBuffer *f, irModule *m, irValue *value) { #endif case irInstr_DebugDeclare: { - /* irInstrDebugDeclare *dd = &instr->DebugDeclare; + irInstrDebugDeclare *dd = &instr->DebugDeclare; Type *vt = ir_type(dd->value); irDebugInfo *di = dd->debug_info; Entity *e = dd->entity; String name = e->token.string; TokenPos pos = e->token.pos; // gb_printf("debug_declare %.*s\n", LIT(dd->entity->token.string)); + ir_fprintf(f, "; "); ir_fprintf(f, "call void @llvm.dbg.declare("); ir_fprintf(f, "metadata "); ir_print_type(f, m, vt); ir_fprintf(f, " "); ir_print_value(f, m, dd->value, vt); ir_fprintf(f, ", metadata !DILocalVariable(name: \""); - ir_print_escape_string(f, name, false); + ir_print_escape_string(f, name, false, false); ir_fprintf(f, "\", scope: !%d, line: %td)", di->id, pos.line); ir_fprintf(f, ", metadata !DIExpression()"); ir_fprintf(f, ")"); ir_fprintf(f, ", !dbg !DILocation(line: %td, column: %td, scope: !%d)", pos.line, pos.column, di->id); - ir_fprintf(f, "\n"); */ + ir_fprintf(f, "\n"); } break; } } |