mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-19 16:11:30 +00:00
Remove dead code
This commit is contained in:
+7
-3
@@ -2517,13 +2517,11 @@ gb_internal void generate_minimum_dependency_set(Checker *c, Entity *start) {
|
||||
|
||||
// Odin internal procedures
|
||||
str_lit("__init_context"),
|
||||
str_lit("cstring_to_string"),
|
||||
// str_lit("cstring_to_string"),
|
||||
str_lit("_cleanup_runtime"),
|
||||
|
||||
// Pseudo-CRT required procedures
|
||||
str_lit("memset"),
|
||||
str_lit("memcpy"),
|
||||
str_lit("memmove"),
|
||||
|
||||
// Utility procedures
|
||||
str_lit("memory_equal"),
|
||||
@@ -2531,6 +2529,12 @@ gb_internal void generate_minimum_dependency_set(Checker *c, Entity *start) {
|
||||
str_lit("memory_compare_zero"),
|
||||
);
|
||||
|
||||
// Only required if no CRT is present
|
||||
FORCE_ADD_RUNTIME_ENTITIES(build_context.no_crt,
|
||||
str_lit("memcpy"),
|
||||
str_lit("memmove"),
|
||||
);
|
||||
|
||||
FORCE_ADD_RUNTIME_ENTITIES(!build_context.tilde_backend,
|
||||
// Extended data type internal procedures
|
||||
str_lit("umodti3"),
|
||||
|
||||
@@ -2033,9 +2033,9 @@ gb_internal lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValu
|
||||
|
||||
case BuiltinProc_clamp:
|
||||
return lb_emit_clamp(p, type_of_expr(expr),
|
||||
lb_build_expr(p, ce->args[0]),
|
||||
lb_build_expr(p, ce->args[1]),
|
||||
lb_build_expr(p, ce->args[2]));
|
||||
lb_build_expr(p, ce->args[0]),
|
||||
lb_build_expr(p, ce->args[1]),
|
||||
lb_build_expr(p, ce->args[2]));
|
||||
|
||||
|
||||
case BuiltinProc_soa_zip:
|
||||
|
||||
@@ -83,27 +83,13 @@ gb_internal LLVMValueRef lb_mem_zero_ptr_internal(lbProcedure *p, LLVMValueRef p
|
||||
lb_type(p->module, t_rawptr),
|
||||
lb_type(p->module, t_int)
|
||||
};
|
||||
if (true || is_inlinable) {
|
||||
LLVMValueRef args[4] = {};
|
||||
args[0] = LLVMBuildPointerCast(p->builder, ptr, types[0], "");
|
||||
args[1] = LLVMConstInt(LLVMInt8TypeInContext(p->module->ctx), 0, false);
|
||||
args[2] = LLVMBuildIntCast2(p->builder, len, types[1], /*signed*/false, "");
|
||||
args[3] = LLVMConstInt(LLVMInt1TypeInContext(p->module->ctx), is_volatile, false);
|
||||
|
||||
LLVMValueRef args[4] = {};
|
||||
args[0] = LLVMBuildPointerCast(p->builder, ptr, types[0], "");
|
||||
args[1] = LLVMConstInt(LLVMInt8TypeInContext(p->module->ctx), 0, false);
|
||||
args[2] = LLVMBuildIntCast2(p->builder, len, types[1], /*signed*/false, "");
|
||||
args[3] = LLVMConstInt(LLVMInt1TypeInContext(p->module->ctx), is_volatile, false);
|
||||
|
||||
return lb_call_intrinsic(p, name, args, gb_count_of(args), types, gb_count_of(types));
|
||||
} else {
|
||||
lbValue pr = lb_lookup_runtime_procedure(p->module, str_lit("memset"));
|
||||
|
||||
LLVMValueRef args[3] = {};
|
||||
args[0] = LLVMBuildPointerCast(p->builder, ptr, types[0], "");
|
||||
args[1] = LLVMConstInt(LLVMInt32TypeInContext(p->module->ctx), 0, false);
|
||||
args[2] = LLVMBuildIntCast2(p->builder, len, types[1], /*signed*/false, "");
|
||||
|
||||
// We always get the function pointer type rather than the function and there is apparently no way around that?
|
||||
LLVMTypeRef type = lb_type_internal_for_procedures_raw(p->module, pr.type);
|
||||
return LLVMBuildCall2(p->builder, type, pr.value, args, gb_count_of(args), "");
|
||||
}
|
||||
return lb_call_intrinsic(p, name, args, gb_count_of(args), types, gb_count_of(types));
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user