diff options
| author | gingerBill <bill@gingerbill.org> | 2024-09-09 14:39:53 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2024-09-09 14:39:53 +0100 |
| commit | 0dddd2b97e4ad526fa5e33d270301c1b807e520e (patch) | |
| tree | 45ebf3320b453b776edf9b569735c4b5d02b8c32 /src | |
| parent | 75dd562a0a2002f3b5664754a946a3ac8ffb33cd (diff) | |
Add internal flag
`-internal-fast-isel`
Diffstat (limited to 'src')
| -rw-r--r-- | src/build_settings.cpp | 1 | ||||
| -rw-r--r-- | src/llvm_backend.cpp | 5 | ||||
| -rw-r--r-- | src/main.cpp | 5 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp index d8b63b947..e86224665 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -430,6 +430,7 @@ struct BuildContext { bool json_errors; bool has_ansi_terminal_colours; + bool fast_isel; bool ignore_lazy; bool ignore_llvm_build; bool ignore_panic; diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index f852636a6..19b5ced67 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -3081,6 +3081,11 @@ gb_internal bool lb_generate_code(lbGenerator *gen) { lbModule *m = entry.value; m->target_machine = target_machine; LLVMSetModuleDataLayout(m->mod, LLVMCreateTargetDataLayout(target_machine)); + + if (build_context.fast_isel) { + LLVMSetTargetMachineFastISel(m->target_machine, true); + } + array_add(&target_machines, target_machine); } diff --git a/src/main.cpp b/src/main.cpp index a03126caf..0a84b2f97 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -389,6 +389,7 @@ enum BuildFlagKind { BuildFlag_PrintLinkerFlags, // internal use only + BuildFlag_InternalFastISel, BuildFlag_InternalIgnoreLazy, BuildFlag_InternalIgnoreLLVMBuild, BuildFlag_InternalIgnorePanic, @@ -594,6 +595,7 @@ gb_internal bool parse_build_flags(Array<String> args) { add_flag(&build_flags, BuildFlag_PrintLinkerFlags, str_lit("print-linker-flags"), BuildFlagParam_None, Command_build); + add_flag(&build_flags, BuildFlag_InternalFastISel, str_lit("internal-fast-isel"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_InternalIgnoreLazy, str_lit("internal-ignore-lazy"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_InternalIgnoreLLVMBuild, str_lit("internal-ignore-llvm-build"),BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_InternalIgnorePanic, str_lit("internal-ignore-panic"), BuildFlagParam_None, Command_all); @@ -1408,6 +1410,9 @@ gb_internal bool parse_build_flags(Array<String> args) { build_context.print_linker_flags = true; break; + case BuildFlag_InternalFastISel: + build_context.fast_isel = true; + break; case BuildFlag_InternalIgnoreLazy: build_context.ignore_lazy = true; break; |