mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-01 19:02:13 +00:00
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.
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user