Better lowering of distinct types. Noreturn function call expr recognized as a "jump" for escape analysis. Preferring "def" in libs. To upper / to lower for ascii. Initial dynlib support.

This commit is contained in:
Christoffer Lerno
2023-05-21 21:25:33 +02:00
committed by Christoffer Lerno
parent a877d4458c
commit ddd0497922
55 changed files with 579 additions and 416 deletions

View File

@@ -1535,12 +1535,12 @@ void llvm_emit_cast(GenContext *c, CastKind cast_kind, Expr *expr, BEValue *valu
{
value->value = llvm_emit_extract_value(c, value->value, 1);
}
value->type = type_usz->canonical;
value->type = type_lowering(type_usz);
llvm_value_rvalue(c, value);
llvm_emit_int_comp_zero(c, value, value, BINARYOP_NE);
break;
}
value->type = to_type;
value->type = type_lowering(to_type);
}
static inline void llvm_emit_cast_expr(GenContext *context, BEValue *be_value, Expr *expr)