Skip to content

Commit

Permalink
Add internal flag
Browse files Browse the repository at this point in the history
`-internal-fast-isel`
  • Loading branch information
gingerBill committed Sep 9, 2024
1 parent 75dd562 commit 0dddd2b
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/build_settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
5 changes: 5 additions & 0 deletions src/llvm_backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
5 changes: 5 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@ enum BuildFlagKind {
BuildFlag_PrintLinkerFlags,

// internal use only
BuildFlag_InternalFastISel,
BuildFlag_InternalIgnoreLazy,
BuildFlag_InternalIgnoreLLVMBuild,
BuildFlag_InternalIgnorePanic,
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 0dddd2b

Please sign in to comment.