diff options
Diffstat (limited to 'src/llvm_backend_opt.cpp')
| -rw-r--r-- | src/llvm_backend_opt.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/llvm_backend_opt.cpp b/src/llvm_backend_opt.cpp index 068546e9d..4424bde7c 100644 --- a/src/llvm_backend_opt.cpp +++ b/src/llvm_backend_opt.cpp @@ -56,8 +56,7 @@ gb_internal void lb_populate_function_pass_manager_specific(lbModule *m, LLVMPas #endif gb_internal bool lb_opt_ignore(i32 optimization_level) { - optimization_level = gb_clamp(optimization_level, -1, 2); - return optimization_level == -1; + return optimization_level < 0; } gb_internal void lb_basic_populate_function_pass_manager(LLVMPassManagerRef fpm, i32 optimization_level) { @@ -65,6 +64,7 @@ gb_internal void lb_basic_populate_function_pass_manager(LLVMPassManagerRef fpm, return; } +#if !LB_USE_NEW_PASS_SYSTEM if (false && optimization_level <= 0 && build_context.ODIN_DEBUG) { LLVMAddMergedLoadStoreMotionPass(fpm); } else { @@ -75,6 +75,7 @@ gb_internal void lb_basic_populate_function_pass_manager(LLVMPassManagerRef fpm, LLVMAddEarlyCSEPass(fpm); } } +#endif } gb_internal void lb_populate_function_pass_manager(lbModule *m, LLVMPassManagerRef fpm, bool ignore_memcpy_pass, i32 optimization_level) { @@ -82,6 +83,7 @@ gb_internal void lb_populate_function_pass_manager(lbModule *m, LLVMPassManagerR return; } +#if !LB_USE_NEW_PASS_SYSTEM if (ignore_memcpy_pass) { lb_basic_populate_function_pass_manager(fpm, optimization_level); return; @@ -109,6 +111,7 @@ gb_internal void lb_populate_function_pass_manager(lbModule *m, LLVMPassManagerR LLVMAddEarlyCSEPass(fpm); LLVMAddLowerExpectIntrinsicPass(fpm); #endif +#endif } gb_internal void lb_populate_function_pass_manager_specific(lbModule *m, LLVMPassManagerRef fpm, i32 optimization_level) { @@ -116,6 +119,7 @@ gb_internal void lb_populate_function_pass_manager_specific(lbModule *m, LLVMPas return; } +#if !LB_USE_NEW_PASS_SYSTEM if (optimization_level <= 0) { LLVMAddMemCpyOptPass(fpm); lb_basic_populate_function_pass_manager(fpm, optimization_level); @@ -148,9 +152,11 @@ gb_internal void lb_populate_function_pass_manager_specific(lbModule *m, LLVMPas LLVMAddEarlyCSEPass(fpm); LLVMAddLowerExpectIntrinsicPass(fpm); #endif +#endif } gb_internal void lb_add_function_simplifcation_passes(LLVMPassManagerRef mpm, i32 optimization_level) { +#if !LB_USE_NEW_PASS_SYSTEM LLVMAddCFGSimplificationPass(mpm); LLVMAddJumpThreadingPass(mpm); @@ -183,6 +189,7 @@ gb_internal void lb_add_function_simplifcation_passes(LLVMPassManagerRef mpm, i3 LLVMAddLoopRerollPass(mpm); LLVMAddAggressiveDCEPass(mpm); LLVMAddCFGSimplificationPass(mpm); +#endif } @@ -193,7 +200,7 @@ gb_internal void lb_populate_module_pass_manager(LLVMTargetMachineRef target_mac if (optimization_level <= 0 && build_context.ODIN_DEBUG) { return; } - +#if !LB_USE_NEW_PASS_SYSTEM LLVMAddAlwaysInlinerPass(mpm); LLVMAddStripDeadPrototypesPass(mpm); LLVMAddAnalysisPasses(target_machine, mpm); @@ -263,6 +270,7 @@ gb_internal void lb_populate_module_pass_manager(LLVMTargetMachineRef target_mac } LLVMAddCFGSimplificationPass(mpm); +#endif } @@ -435,7 +443,7 @@ gb_internal void lb_append_to_compiler_used(lbModule *m, LLVMValueRef func) { } LLVMTypeRef Int8PtrTy = LLVMPointerType(LLVMInt8TypeInContext(m->ctx), 0); - LLVMTypeRef ATy = LLVMArrayType(Int8PtrTy, operands); + LLVMTypeRef ATy = llvm_array_type(Int8PtrTy, operands); constants[operands - 1] = LLVMConstBitCast(func, Int8PtrTy); LLVMValueRef initializer = LLVMConstArray(Int8PtrTy, constants, operands); |