Skip to content

Commit 535de98

Browse files
committed
tweak a little bit of inlining strategy
1 parent 4655415 commit 535de98

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

jscomp/core/js_cmj_format.ml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,13 @@ let not_found key = {name = key; arity = single_na; persistent_closed_lambda =
132132

133133

134134
let get_result midVal =
135-
if midVal.persistent_closed_lambda = None ||
136-
Js_config.get_cross_module_inline () then midVal
137-
else {midVal with persistent_closed_lambda = None}
135+
match midVal.persistent_closed_lambda with
136+
| Some (Lconst (Const_js_null | Const_js_undefined | Const_js_true | Const_js_false ))
137+
| None ->
138+
midVal
139+
| Some _ ->
140+
if Js_config.get_cross_module_inline () then midVal
141+
else {midVal with persistent_closed_lambda = None}
138142

139143
let rec binarySearchAux arr lo hi (key : string) =
140144
let mid = (lo + hi)/2 in

jscomp/core/lam_stats_export.ml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ let values_of_export
6464
end
6565
in
6666
let persistent_closed_lambda =
67+
match Map_ident.find_opt export_map x with
68+
| Some Lconst (Const_js_null | Const_js_undefined | Const_js_true | Const_js_false ) | None as optlam -> optlam
69+
| Some lambda as optlam ->
6770
if not !Js_config.cross_module_inline then None
68-
else match Map_ident.find_opt export_map x with
69-
| Some lambda ->
71+
else
7072
if Lam_analysis.safe_to_inline lambda
7173
(* when inlning a non function, we have to be very careful,
7274
only truly immutable values can be inlined
@@ -90,12 +92,12 @@ let values_of_export
9092
then
9193
begin
9294
Ext_log.dwarn ~__POS__ "%s recorded for inlining @." x.name ;
93-
Some lambda
95+
optlam
9496
end
9597
else None
9698
else
9799
None
98-
| None -> None in
100+
in
99101
match arity, persistent_closed_lambda with
100102
| Single Arity_na,
101103
(None | Some (Lconst (Const_pointer (_, Pt_module_alias)))) -> acc

0 commit comments

Comments
 (0)