aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-12-09 19:12:42 +0100
committerLaytan Laats <laytanlaats@hotmail.com>2024-12-09 19:12:42 +0100
commitc8f0d27ceecaaa4d9803ae7fd0fea69ca5aff227 (patch)
tree54f8890905d59bfb078a832dbfe2c4f44ecccc46 /src
parent6e1d02886138964439a0c1611ab7e570d0fee9e2 (diff)
compiler: remove viral `#force(_no)_inline`
If a procedure was marked `#force_no_inline`, any procedure calls within it would also implicitly be. This is not expected for multiple reasons: 1. `#force(_no)_inline` on a call expr works differently than on a procedure literal. 2. Adding the attribute on it and every called proc blows up the amount of work for the inliner pass and may increase the time it takes. 3. Putting `#force_no_inline` on a procedure to keep executable size down (like we do for some map procedures), benchmark it, or find it in asm/ir has the added effect of slowing those procedures down significantly and not representing truth.
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend_proc.cpp4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp
index fee825a2f..712e13592 100644
--- a/src/llvm_backend_proc.cpp
+++ b/src/llvm_backend_proc.cpp
@@ -1136,10 +1136,6 @@ gb_internal lbValue lb_emit_call(lbProcedure *p, lbValue value, Array<lbValue> c
}
}
- if (inlining == ProcInlining_none) {
- inlining = p->inlining;
- }
-
Type *rt = reduce_tuple_to_single_type(results);
Type *original_rt = rt;
if (split_returns) {