aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-25 20:03:05 +0100
committergingerBill <bill@gingerbill.org>2021-04-25 20:03:05 +0100
commitcb2e6ea31db90ca80314e5ff8ce8f43371fade7c (patch)
treea58df81b7254167e96492a9229402833a96fc715
parent74c683e908fb0fec6c85de099fbbda400d9d6fbe (diff)
Remove `use_llvm_api` related checks and other related things
-rw-r--r--core/runtime/internal.odin40
-rw-r--r--core/sys/cpu/cpu.odin2
-rw-r--r--src/build_settings.cpp8
-rw-r--r--src/check_builtin.cpp40
-rw-r--r--src/check_expr.cpp4
-rw-r--r--src/check_stmt.cpp3
-rw-r--r--src/checker.cpp24
-rw-r--r--src/main.cpp1
8 files changed, 13 insertions, 109 deletions
diff --git a/core/runtime/internal.odin b/core/runtime/internal.odin
index 3c05fb6a7..e2f8c7287 100644
--- a/core/runtime/internal.odin
+++ b/core/runtime/internal.odin
@@ -107,22 +107,12 @@ mem_copy :: proc "contextless" (dst, src: rawptr, len: int) -> rawptr {
}
// NOTE(bill): This _must_ be implemented like C's memmove
foreign _ {
- when ODIN_USE_LLVM_API {
- when size_of(rawptr) == 8 {
- @(link_name="llvm.memmove.p0i8.p0i8.i64")
- llvm_memmove :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
- } else {
- @(link_name="llvm.memmove.p0i8.p0i8.i32")
- llvm_memmove :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
- }
+ when size_of(rawptr) == 8 {
+ @(link_name="llvm.memmove.p0i8.p0i8.i64")
+ llvm_memmove :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
} else {
- when size_of(rawptr) == 8 {
- @(link_name="llvm.memmove.p0i8.p0i8.i64")
- llvm_memmove :: proc "none" (dst, src: rawptr, len: int, align: i32 = 1, is_volatile: bool = false) ---;
- } else {
- @(link_name="llvm.memmove.p0i8.p0i8.i32")
- llvm_memmove :: proc "none" (dst, src: rawptr, len: int, align: i32 = 1, is_volatile: bool = false) ---;
- }
+ @(link_name="llvm.memmove.p0i8.p0i8.i32")
+ llvm_memmove :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
}
}
llvm_memmove(dst, src, len);
@@ -135,22 +125,12 @@ mem_copy_non_overlapping :: proc "contextless" (dst, src: rawptr, len: int) -> r
}
// NOTE(bill): This _must_ be implemented like C's memcpy
foreign _ {
- when ODIN_USE_LLVM_API {
- when size_of(rawptr) == 8 {
- @(link_name="llvm.memcpy.p0i8.p0i8.i64")
- llvm_memcpy :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
- } else {
- @(link_name="llvm.memcpy.p0i8.p0i8.i32")
- llvm_memcpy :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
- }
+ when size_of(rawptr) == 8 {
+ @(link_name="llvm.memcpy.p0i8.p0i8.i64")
+ llvm_memcpy :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
} else {
- when size_of(rawptr) == 8 {
- @(link_name="llvm.memcpy.p0i8.p0i8.i64")
- llvm_memcpy :: proc "none" (dst, src: rawptr, len: int, align: i32 = 1, is_volatile: bool = false) ---;
- } else {
- @(link_name="llvm.memcpy.p0i8.p0i8.i32")
- llvm_memcpy :: proc "none" (dst, src: rawptr, len: int, align: i32 = 1, is_volatile: bool = false) ---;
- }
+ @(link_name="llvm.memcpy.p0i8.p0i8.i32")
+ llvm_memcpy :: proc "none" (dst, src: rawptr, len: int, is_volatile: bool = false) ---;
}
}
llvm_memcpy(dst, src, len);
diff --git a/core/sys/cpu/cpu.odin b/core/sys/cpu/cpu.odin
index b6f770aed..b99fe01d8 100644
--- a/core/sys/cpu/cpu.odin
+++ b/core/sys/cpu/cpu.odin
@@ -1,7 +1,5 @@
package sys_cpu
-#assert(ODIN_USE_LLVM_API);
-
Cache_Line_Pad :: struct {_: [_cache_line_size]byte};
initialized: bool;
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index 0be18a0d4..461b1610c 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -204,8 +204,6 @@ struct BuildContext {
bool ignore_warnings;
bool warnings_as_errors;
- bool use_llvm_api;
-
bool use_subsystem_windows;
bool ignore_microsoft_magic;
bool linker_map_file;
@@ -782,8 +780,6 @@ void init_build_context(TargetMetrics *cross_target) {
bc->link_flags = str_lit(" ");
bc->opt_flags = str_lit(" ");
- bc->use_llvm_api = true;
-
gbString llc_flags = gb_string_make_reserve(heap_allocator(), 64);
if (bc->ODIN_DEBUG) {
@@ -841,10 +837,6 @@ void init_build_context(TargetMetrics *cross_target) {
bc->link_flags = str_lit("-arch arm64 ");
break;
}
- if ((bc->command_kind & Command__does_build) != 0 && !bc->use_llvm_api) {
- gb_printf_err("The arm64 architecture is only supported with -llvm-api\n");;
- gb_exit(1);
- }
} else if (bc->metrics.arch == TargetArch_wasm32) {
bc->link_flags = str_lit("--no-entry --export-table --export-all --allow-undefined ");
diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp
index 5f4411b90..94e8dcee6 100644
--- a/src/check_builtin.cpp
+++ b/src/check_builtin.cpp
@@ -614,9 +614,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
} else if (type->kind == Type_SimdVector) {
max_count = type->SimdVector.count;
elem_type = type->SimdVector.elem;
- if (!build_context.use_llvm_api) {
- error(call, "'swizzle' with #simd vector is not supported on this backend");
- }
}
i64 arg_count = 0;
@@ -1529,11 +1526,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
}
case BuiltinProc_soa_zip: {
- if (!build_context.use_llvm_api) {
- error(call, "'soa_zip' is not supported with this backend");
- return false;
- }
-
auto types = array_make<Type *>(temporary_allocator(), 0, ce->args.count);
auto names = array_make<String>(temporary_allocator(), 0, ce->args.count);
@@ -1681,11 +1673,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
}
case BuiltinProc_soa_unzip: {
- if (!build_context.use_llvm_api) {
- error(call, "'soa_unzip' is not supported with this backend");
- return false;
- }
-
Operand x = {};
check_expr(c, &x, ce->args[0]);
if (x.mode == Addressing_Invalid) {
@@ -1927,16 +1914,10 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
case BuiltinProc_trap:
case BuiltinProc_debug_trap:
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- }
operand->mode = Addressing_NoValue;
break;
case BuiltinProc_read_cycle_counter:
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- }
operand->mode = Addressing_Value;
operand->type = t_i64;
break;
@@ -1944,10 +1925,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
case BuiltinProc_count_ones:
case BuiltinProc_trailing_zeros:
case BuiltinProc_reverse_bits:
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- // continue anyway
- }
{
Operand x = {};
check_expr(c, &x, ce->args[0]);
@@ -1971,10 +1948,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
break;
case BuiltinProc_byte_swap:
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- // continue anyway
- }
{
Operand x = {};
check_expr(c, &x, ce->args[0]);
@@ -2006,10 +1979,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
case BuiltinProc_overflow_add:
case BuiltinProc_overflow_sub:
case BuiltinProc_overflow_mul:
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- // continue anyway
- }
{
Operand x = {};
Operand y = {};
@@ -2189,11 +2158,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
case BuiltinProc_fixed_point_mul_sat:
case BuiltinProc_fixed_point_div_sat:
{
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- // continue anyway
- }
-
Operand x = {};
Operand y = {};
Operand z = {};
@@ -2255,10 +2219,6 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
case BuiltinProc_expect:
- if (!build_context.use_llvm_api) {
- error(ce->args[0], "'%.*s' is not supported on this backend", LIT(builtin_procs[id].name));
- // continue anyway
- }
{
Operand x = {};
Operand y = {};
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 61cdf7822..2c83565a4 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -7903,10 +7903,6 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type
error(node, "Inline asm expressions are only allowed within a procedure body");
}
- if (!build_context.use_llvm_api) {
- error(node, "Inline asm expressions are only currently allowed with -llvm-api");
- }
-
auto param_types = array_make<Type *>(heap_allocator(), ia->param_types.count);
Type *return_type = nullptr;
for_array(i, ia->param_types) {
diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp
index cad2be85b..a3c9a529c 100644
--- a/src/check_stmt.cpp
+++ b/src/check_stmt.cpp
@@ -1795,9 +1795,6 @@ void check_stmt_internal(CheckerContext *ctx, Ast *node, u32 flags) {
if (is_ptr) use_by_reference_for_value = true;
array_add(&vals, t->Struct.soa_elem);
array_add(&vals, t_int);
- if (!build_context.use_llvm_api) {
- error(operand.expr, "#soa structures do not yet support for in loop iteration");
- }
}
break;
}
diff --git a/src/checker.cpp b/src/checker.cpp
index 5a2203cfb..ecd9b5ea4 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -755,7 +755,6 @@ void init_universal(void) {
add_global_constant(str_lit("ODIN_DEBUG"), t_untyped_bool, exact_value_bool(bc->ODIN_DEBUG));
add_global_constant(str_lit("ODIN_DISABLE_ASSERT"), t_untyped_bool, exact_value_bool(bc->ODIN_DISABLE_ASSERT));
add_global_constant(str_lit("ODIN_DEFAULT_TO_NIL_ALLOCATOR"), t_untyped_bool, exact_value_bool(bc->ODIN_DEFAULT_TO_NIL_ALLOCATOR));
- add_global_constant(str_lit("ODIN_USE_LLVM_API"), t_untyped_bool, exact_value_bool(bc->use_llvm_api));
add_global_constant(str_lit("ODIN_NO_DYNAMIC_LITERALS"), t_untyped_bool, exact_value_bool(bc->no_dynamic_literals));
add_global_constant(str_lit("ODIN_TEST"), t_untyped_bool, exact_value_bool(bc->command_kind == Command_test));
@@ -1774,23 +1773,6 @@ void generate_minimum_dependency_set(Checker *c, Entity *start) {
force_add_dependency_entity(c, c->info.runtime_package->scope, required_runtime_entities[i]);
}
- if (!build_context.use_llvm_api) {
- String other_required_runtime_entities[] = {
- str_lit("bswap_16"),
- str_lit("bswap_32"),
- str_lit("bswap_64"),
- str_lit("bswap_128"),
-
- str_lit("bswap_f16"),
- str_lit("bswap_f32"),
- str_lit("bswap_f64"),
- };
-
- for (isize i = 0; i < gb_count_of(other_required_runtime_entities); i++) {
- force_add_dependency_entity(c, c->info.runtime_package->scope, other_required_runtime_entities[i]);
- }
- }
-
if (build_context.no_crt) {
String required_no_crt_entities[] = {
// NOTE(bill): Only if these exist
@@ -2741,7 +2723,7 @@ DECL_ATTRIBUTE_PROC(type_decl_attribute) {
}
}
- if (valid && build_context.use_llvm_api) {
+ if (valid) {
if (ac->atom_op_table == nullptr) {
ac->atom_op_table = gb_alloc_item(permanent_allocator(), TypeAtomOpTable);
}
@@ -2800,7 +2782,7 @@ DECL_ATTRIBUTE_PROC(type_decl_attribute) {
}
}
- if (valid && build_context.use_llvm_api) {
+ if (valid) {
if (ac->atom_op_table == nullptr) {
ac->atom_op_table = gb_alloc_item(permanent_allocator(), TypeAtomOpTable);
}
@@ -2882,7 +2864,7 @@ DECL_ATTRIBUTE_PROC(type_decl_attribute) {
}
}
- if (valid && build_context.use_llvm_api) {
+ if (valid) {
if (ac->atom_op_table == nullptr) {
ac->atom_op_table = gb_alloc_item(permanent_allocator(), TypeAtomOpTable);
}
diff --git a/src/main.cpp b/src/main.cpp
index 02a9b50f7..d2f84b29d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1185,7 +1185,6 @@ bool parse_build_flags(Array<String> args) {
case BuildFlag_UseLLVMApi:
gb_printf_err("-llvm-api flag is not required any more\n");
- build_context.use_llvm_api = true;
bad_flags = true;
break;