Add internal flag

`-internal-fast-isel`
This commit is contained in:
gingerBill
2024-09-09 14:39:53 +01:00
parent 75dd562a0a
commit 0dddd2b97e
3 changed files with 11 additions and 0 deletions

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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;