mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-01 01:31:49 -07:00
Update ABI breaking changes for f16 types (due to LLVM 15+)
This commit is contained in:
@@ -935,6 +935,7 @@ gb_internal i64 odin_compile_timestamp(void) {
|
||||
return ns_after_1970;
|
||||
}
|
||||
|
||||
gb_internal bool lb_use_new_pass_system(void);
|
||||
|
||||
gb_internal void init_universal(void) {
|
||||
BuildContext *bc = &build_context;
|
||||
@@ -1083,6 +1084,8 @@ gb_internal void init_universal(void) {
|
||||
|
||||
add_global_constant("ODIN_COMPILE_TIMESTAMP", t_untyped_integer, exact_value_i64(odin_compile_timestamp()));
|
||||
|
||||
add_global_bool_constant("__ODIN_LLVM_F16_SUPPORTED", lb_use_new_pass_system());
|
||||
|
||||
|
||||
// Builtin Procedures
|
||||
for (isize i = 0; i < gb_count_of(builtin_procs); i++) {
|
||||
|
||||
@@ -48,6 +48,20 @@
|
||||
#define ODIN_LLVM_MINIMUM_VERSION_14 0
|
||||
#endif
|
||||
|
||||
#if LLVM_VERSION_MAJOR == 15 || LLVM_VERSION_MAJOR == 16
|
||||
#error "LLVM versions 15 and 16 are not supported"
|
||||
#endif
|
||||
|
||||
#if LLVM_VERSION_MAJOR >= 17
|
||||
#define LB_USE_NEW_PASS_SYSTEM 1
|
||||
#else
|
||||
#define LB_USE_NEW_PASS_SYSTEM 0
|
||||
#endif
|
||||
|
||||
gb_internal bool lb_use_new_pass_system(void) {
|
||||
return LB_USE_NEW_PASS_SYSTEM;
|
||||
}
|
||||
|
||||
struct lbProcedure;
|
||||
|
||||
struct lbValue {
|
||||
|
||||
@@ -55,16 +55,6 @@ gb_internal void lb_populate_function_pass_manager_specific(lbModule *m, LLVMPas
|
||||
#define LLVM_ADD_CONSTANT_VALUE_PASS(fpm)
|
||||
#endif
|
||||
|
||||
#if LLVM_VERSION_MAJOR == 15 || LLVM_VERSION_MAJOR == 16
|
||||
#error "LLVM versions 15 and 16 are not supported"
|
||||
#endif
|
||||
|
||||
#if LLVM_VERSION_MAJOR >= 17
|
||||
#define LB_USE_NEW_PASS_SYSTEM 1
|
||||
#else
|
||||
#define LB_USE_NEW_PASS_SYSTEM 0
|
||||
#endif
|
||||
|
||||
gb_internal bool lb_opt_ignore(i32 optimization_level) {
|
||||
return optimization_level < 0;
|
||||
}
|
||||
|
||||
@@ -412,7 +412,6 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
add_flag(&build_flags, BuildFlag_SingleFile, str_lit("file"), BuildFlagParam_None, Command__does_build | Command__does_check);
|
||||
add_flag(&build_flags, BuildFlag_OutFile, str_lit("out"), BuildFlagParam_String, Command__does_build | Command_test);
|
||||
add_flag(&build_flags, BuildFlag_OptimizationMode, str_lit("o"), BuildFlagParam_String, Command__does_build);
|
||||
add_flag(&build_flags, BuildFlag_OptimizationMode, str_lit("O"), BuildFlagParam_String, Command__does_build);
|
||||
add_flag(&build_flags, BuildFlag_ShowTimings, str_lit("show-timings"), BuildFlagParam_None, Command__does_check);
|
||||
add_flag(&build_flags, BuildFlag_ShowMoreTimings, str_lit("show-more-timings"), BuildFlagParam_None, Command__does_check);
|
||||
add_flag(&build_flags, BuildFlag_ExportTimings, str_lit("export-timings"), BuildFlagParam_String, Command__does_check);
|
||||
|
||||
Reference in New Issue
Block a user