mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 23:28:48 +00:00
Add internal flag
`-internal-fast-isel`
This commit is contained in:
@@ -430,6 +430,7 @@ struct BuildContext {
|
|||||||
bool json_errors;
|
bool json_errors;
|
||||||
bool has_ansi_terminal_colours;
|
bool has_ansi_terminal_colours;
|
||||||
|
|
||||||
|
bool fast_isel;
|
||||||
bool ignore_lazy;
|
bool ignore_lazy;
|
||||||
bool ignore_llvm_build;
|
bool ignore_llvm_build;
|
||||||
bool ignore_panic;
|
bool ignore_panic;
|
||||||
|
|||||||
@@ -3081,6 +3081,11 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
|
|||||||
lbModule *m = entry.value;
|
lbModule *m = entry.value;
|
||||||
m->target_machine = target_machine;
|
m->target_machine = target_machine;
|
||||||
LLVMSetModuleDataLayout(m->mod, LLVMCreateTargetDataLayout(target_machine));
|
LLVMSetModuleDataLayout(m->mod, LLVMCreateTargetDataLayout(target_machine));
|
||||||
|
|
||||||
|
if (build_context.fast_isel) {
|
||||||
|
LLVMSetTargetMachineFastISel(m->target_machine, true);
|
||||||
|
}
|
||||||
|
|
||||||
array_add(&target_machines, target_machine);
|
array_add(&target_machines, target_machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -389,6 +389,7 @@ enum BuildFlagKind {
|
|||||||
BuildFlag_PrintLinkerFlags,
|
BuildFlag_PrintLinkerFlags,
|
||||||
|
|
||||||
// internal use only
|
// internal use only
|
||||||
|
BuildFlag_InternalFastISel,
|
||||||
BuildFlag_InternalIgnoreLazy,
|
BuildFlag_InternalIgnoreLazy,
|
||||||
BuildFlag_InternalIgnoreLLVMBuild,
|
BuildFlag_InternalIgnoreLLVMBuild,
|
||||||
BuildFlag_InternalIgnorePanic,
|
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_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_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_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);
|
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;
|
build_context.print_linker_flags = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case BuildFlag_InternalFastISel:
|
||||||
|
build_context.fast_isel = true;
|
||||||
|
break;
|
||||||
case BuildFlag_InternalIgnoreLazy:
|
case BuildFlag_InternalIgnoreLazy:
|
||||||
build_context.ignore_lazy = true;
|
build_context.ignore_lazy = true;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user