Remove print(ln) and fix swizzle

This commit is contained in:
gingerBill
2016-08-19 09:54:01 +01:00
parent f931b089d5
commit ddb15e73c0
5 changed files with 38 additions and 62 deletions

View File

@@ -1031,38 +1031,6 @@ for.done.-.8:
ret void
}
define void @print_pointer(%.rawptr %p) alwaysinline {
entry.-.0:
%0 = alloca %.rawptr, align 8 ; p
store %.rawptr zeroinitializer, %.rawptr* %0
store %.rawptr %p, %.rawptr* %0
%1 = load %.rawptr, %.rawptr* %0, align 8
%2 = ptrtoint %.rawptr %1 to i64
call void @print__uint(i64 %2, i64 16, i64 0, i8 32)
ret void
}
define void @print_f32(float %f) alwaysinline {
entry.-.0:
%0 = alloca float, align 4 ; f
store float zeroinitializer, float* %0
store float %f, float* %0
%1 = load float, float* %0, align 4
%2 = fpext float %1 to double
call void @print__f64(double %2, i64 7)
ret void
}
define void @print_f64(double %f) alwaysinline {
entry.-.0:
%0 = alloca double, align 8 ; f
store double zeroinitializer, double* %0
store double %f, double* %0
%1 = load double, double* %0, align 8
call void @print__f64(double %1, i64 10)
ret void
}
define void @print_bool(i1 %b) {
entry.-.0:
%0 = alloca i1, align 1 ; b
@@ -1099,6 +1067,38 @@ if.done.-.3:
ret void
}
define void @print_pointer(%.rawptr %p) alwaysinline {
entry.-.0:
%0 = alloca %.rawptr, align 8 ; p
store %.rawptr zeroinitializer, %.rawptr* %0
store %.rawptr %p, %.rawptr* %0
%1 = load %.rawptr, %.rawptr* %0, align 8
%2 = ptrtoint %.rawptr %1 to i64
call void @print__uint(i64 %2, i64 16, i64 0, i8 32)
ret void
}
define void @print_f32(float %f) alwaysinline {
entry.-.0:
%0 = alloca float, align 4 ; f
store float zeroinitializer, float* %0
store float %f, float* %0
%1 = load float, float* %0, align 4
%2 = fpext float %1 to double
call void @print__f64(double %2, i64 7)
ret void
}
define void @print_f64(double %f) alwaysinline {
entry.-.0:
%0 = alloca double, align 8 ; f
store double zeroinitializer, double* %0
store double %f, double* %0
%1 = load double, double* %0, align 8
call void @print__f64(double %1, i64 10)
ret void
}
define void @print__f64(double %f, i64 %decimal_places) {
entry.-.0:
%0 = alloca double, align 8 ; f

View File

@@ -124,8 +124,6 @@ enum BuiltinProcId {
BuiltinProc_copy,
BuiltinProc_append,
BuiltinProc_swizzle,
BuiltinProc_print,
BuiltinProc_println,
BuiltinProc_Count,
};
@@ -152,10 +150,6 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_Count] = {
{STR_LIT("append"), 2, false, Expression_Expression},
{STR_LIT("swizzle"), 1, true, Expression_Expression},
{STR_LIT("print"), 1, true, Expression_Statement},
{STR_LIT("println"), 1, true, Expression_Statement},
};
struct CheckerContext {

View File

@@ -1470,7 +1470,6 @@ b32 check_builtin_procedure(Checker *c, Operand *operand, AstNode *call, i32 id)
case BuiltinProc_static_assert:
// static_assert :: proc(cond: bool)
// TODO(bill): Should `static_assert` and `assert` be unified?
if (operand->mode != Addressing_Constant ||
!is_type_boolean(operand->type)) {
@@ -1663,17 +1662,6 @@ b32 check_builtin_procedure(Checker *c, Operand *operand, AstNode *call, i32 id)
Type *elem_type = vector_type->vector.elem;
operand->type = make_type_vector(c->allocator, elem_type, arg_count);
operand->mode = Addressing_Value;
}
case BuiltinProc_print:
case BuiltinProc_println: {
for (AstNode *arg = ce->arg_list; arg != NULL; arg = arg->next) {
// TOOD(bill): `check_assignment` doesn't allow tuples at the moment, should it?
// Or should we destruct the tuple and use each elem?
check_assignment(c, operand, NULL, make_string("argument"));
if (operand->mode == Addressing_Invalid)
return false;
}
} break;
}

View File

@@ -641,10 +641,13 @@ void ssa_print_instr(gbFile *f, ssaModule *m, ssaValue *value) {
ssa_fprintf(f, " ");
ssa_print_value(f, m, sv->vector, vt);
ssa_fprintf(f, ", ");
ssa_print_type(f, m->sizes, vt);
ssa_fprintf(f, " undef,");
ssa_fprintf(f, " <%td x i32> <", sv->index_count);
ssa_print_type(f, m->sizes, vt);
ssa_fprintf(f, " ");
ssa_print_value(f, m, sv->vector, vt);
ssa_fprintf(f, ", ");
ssa_fprintf(f, "<%td x i32> <", sv->index_count);
for (isize i = 0; i < sv->index_count; i++) {
if (i > 0) {
ssa_fprintf(f, ", ");

View File

@@ -1818,15 +1818,6 @@ ssaValue *ssa_build_single_expr(ssaProcedure *proc, AstNode *expr, TypeAndValue
return ssa_emit(proc, ssa_make_instr_shuffle_vector(proc, vector, indices, index_count));
} break;
case BuiltinProc_print: {
// print :: proc(...)
GB_PANIC("TODO(bill): BuiltinProc_print");
} break;
case BuiltinProc_println: {
// println :: proc(...)
GB_PANIC("TODO(bill): BuiltinProc_println");
} break;
}
}
}