mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-06 06:38:20 +00:00
-internal-rvo
This commit is contained in:
@@ -579,6 +579,8 @@ struct BuildContext {
|
||||
bool internal_ignore_llvm_verification;
|
||||
bool internal_llvm_mem2reg;
|
||||
|
||||
bool enable_rvo;
|
||||
|
||||
bool no_threaded_checker;
|
||||
|
||||
bool show_debug_messages;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define LB_ENABLE_RVO true
|
||||
#define LB_ENABLE_RVO build_context.enable_rvo
|
||||
|
||||
// NOTE(bill): @RVO Check if a call expression returns by sret with a return type matching dst_type.
|
||||
// Returns the callee's function type if eligible for copy elision, nullptr otherwise.
|
||||
|
||||
@@ -412,6 +412,7 @@ enum BuildFlagKind {
|
||||
BuildFlag_InternalWeakMonomorphization,
|
||||
BuildFlag_InternalLLVMVerification,
|
||||
BuildFlag_InternalLLVMMem2Reg,
|
||||
BuildFlag_InternalEnableRVO,
|
||||
|
||||
BuildFlag_Tilde,
|
||||
|
||||
@@ -644,6 +645,7 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
add_flag(&build_flags, BuildFlag_InternalWeakMonomorphization, str_lit("internal-weak-monomorphization"), BuildFlagParam_None, Command_all);
|
||||
add_flag(&build_flags, BuildFlag_InternalLLVMVerification, str_lit("internal-ignore-llvm-verification"), BuildFlagParam_None, Command_all);
|
||||
add_flag(&build_flags, BuildFlag_InternalLLVMMem2Reg, str_lit("internal-llvm-mem2reg"), BuildFlagParam_None, Command_all);
|
||||
add_flag(&build_flags, BuildFlag_InternalEnableRVO, str_lit("internal-enable-rvo"), BuildFlagParam_None, Command_all);
|
||||
|
||||
#if ALLOW_TILDE
|
||||
add_flag(&build_flags, BuildFlag_Tilde, str_lit("tilde"), BuildFlagParam_None, Command__does_build);
|
||||
@@ -1639,6 +1641,10 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
case BuildFlag_InternalLLVMMem2Reg:
|
||||
build_context.internal_llvm_mem2reg = true;
|
||||
break;
|
||||
case BuildFlag_InternalEnableRVO:
|
||||
build_context.enable_rvo = true;
|
||||
break;
|
||||
|
||||
|
||||
|
||||
case BuildFlag_Tilde:
|
||||
|
||||
Reference in New Issue
Block a user