Skip to content

Commit 708a516

Browse files
authored
Merge pull request #1086 from bloomberg/sub_module
calculate maybe depends as early as we can in case later optimizations remove effectful modules
2 parents 731b520 + bb628ef commit 708a516

22 files changed

+5551
-5422
lines changed

jscomp/Makefile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,15 @@ SYNTAX_SRCS=ast_derive_constructor ast_derive_util ast_exp ast_external ast_lift
217217
SYNTAX_CMXS=$(addprefix syntax/, $(addsuffix .cmx, $(SYNTAX_SRCS)))
218218
DEPENDS_SRCS= depends_post_process bs_exception ast_extract binary_ast
219219
DEPENDS_CMXS=$(addprefix depends/, $(addsuffix .cmx, $(DEPENDS_SRCS)))
220-
CORE_SRCS= type_int_to_string type_util ocaml_stdlib_slots bs_conditional_initial ocaml_options ocaml_parse lam\
220+
CORE_SRCS= type_int_to_string type_util ocaml_stdlib_slots bs_conditional_initial ocaml_options ocaml_parse\
221+
js_op\
222+
lam_module_ident\
223+
lam\
221224
lam_print lam_beta_reduce_util lam_inline_util lam_analysis\
222225
lam_closure\
223-
js_cmj_format js_fun_env js_call_info js_closure js_op js_number js_cmj_datasets\
224-
lam_exit_code j lam_module_ident lam_compile_util lam_stats config_util lam_compile_defs js_map js_fold js_fold_basic js_pass_scope\
226+
js_cmj_format js_fun_env js_call_info js_closure js_number js_cmj_datasets\
227+
lam_exit_code j \
228+
lam_compile_util lam_stats config_util lam_compile_defs js_map js_fold js_fold_basic js_pass_scope\
225229
js_op_util js_analyzer js_shake js_exp_make js_long js_of_lam_exception js_of_lam_module js_of_lam_array js_of_lam_block js_of_lam_string\
226230
js_of_lam_tuple js_of_lam_record js_of_lam_float_record js_arr lam_compile_const \
227231
lam_inner lam_util \

jscomp/all.depend

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,9 @@ core/type_util.cmi :
234234
core/bs_conditional_initial.cmi :
235235
core/ocaml_options.cmi :
236236
core/ocaml_parse.cmi :
237-
core/lam.cmi : ext/ident_set.cmi
237+
core/lam_module_ident.cmi : core/js_op.cmx common/js_config.cmi core/j.cmx \
238+
ext/hashtbl_gen.cmx ext/hash_set_gen.cmx
239+
core/lam.cmi : core/lam_module_ident.cmi ext/ident_set.cmi
238240
core/lam_print.cmi : core/lam.cmi
239241
core/lam_beta_reduce_util.cmi : core/lam.cmi
240242
core/lam_inline_util.cmi : core/lam.cmi
@@ -248,11 +250,9 @@ core/js_closure.cmi : ext/ident_set.cmi
248250
core/js_number.cmi :
249251
core/js_cmj_datasets.cmi : ext/string_map.cmi core/js_cmj_format.cmi
250252
core/lam_exit_code.cmi : core/lam.cmi
251-
core/lam_module_ident.cmi : core/js_op.cmx common/js_config.cmi core/j.cmx \
252-
ext/hashtbl_gen.cmx ext/hash_set_gen.cmx
253253
core/lam_compile_util.cmi : core/js_op.cmx
254-
core/lam_stats.cmi : core/lam_module_ident.cmi core/lam.cmi \
255-
ext/int_hash_set.cmi ext/ident_set.cmi ext/ident_hashtbl.cmi
254+
core/lam_stats.cmi : core/lam.cmi ext/int_hash_set.cmi ext/ident_set.cmi \
255+
ext/ident_hashtbl.cmi
256256
core/config_util.cmi : core/js_cmj_format.cmi
257257
core/lam_compile_defs.cmi : core/lam_stats.cmi core/j.cmx ext/ident_map.cmi
258258
core/js_fold_basic.cmi : core/lam_module_ident.cmi core/j.cmx \
@@ -327,12 +327,16 @@ core/bs_conditional_initial.cmx : common/bs_version.cmx \
327327
core/ocaml_options.cmx : common/bs_version.cmx core/ocaml_options.cmi
328328
core/ocaml_parse.cmx : syntax/ppx_entry.cmx common/js_config.cmx \
329329
core/ocaml_parse.cmi
330+
core/js_op.cmx :
331+
core/lam_module_ident.cmx : core/js_op.cmx common/js_config.cmx core/j.cmx \
332+
ext/hashtbl_make.cmx ext/hash_set.cmx ext/ext_ident.cmx \
333+
stubs/bs_hash_stubs.cmx core/lam_module_ident.cmi
330334
core/lam.cmx : ext/ordered_hash_map_local_ident.cmx \
331-
core/ocaml_stdlib_slots.cmx ext/literals.cmx common/js_config.cmx \
332-
ext/int_vec_vec.cmx ext/int_vec_util.cmx ext/int_vec.cmx \
333-
ext/ident_set.cmx ext/ident_hashtbl.cmx ext/ident_hash_set.cmx \
334-
ext/hash_set_ident_mask.cmx ext/ext_string.cmx ext/ext_scc.cmx \
335-
core/lam.cmi
335+
core/ocaml_stdlib_slots.cmx ext/literals.cmx core/lam_module_ident.cmx \
336+
common/js_config.cmx ext/int_vec_vec.cmx ext/int_vec_util.cmx \
337+
ext/int_vec.cmx ext/ident_set.cmx ext/ident_hashtbl.cmx \
338+
ext/ident_hash_set.cmx ext/hash_set_ident_mask.cmx ext/ext_string.cmx \
339+
ext/ext_scc.cmx core/lam.cmi
336340
core/lam_print.cmx : core/lam.cmx core/lam_print.cmi
337341
core/lam_beta_reduce_util.cmx : core/lam.cmx ext/ident_hashtbl.cmx \
338342
core/lam_beta_reduce_util.cmi
@@ -345,20 +349,15 @@ core/js_cmj_format.cmx : ext/string_map.cmx core/lam.cmx \
345349
core/js_fun_env.cmx : ext/ident_set.cmx ext/ext_list.cmx core/js_fun_env.cmi
346350
core/js_call_info.cmx : core/js_call_info.cmi
347351
core/js_closure.cmx : ext/ident_set.cmx core/js_closure.cmi
348-
core/js_op.cmx :
349352
core/js_number.cmx : core/js_number.cmi
350353
core/js_cmj_datasets.cmx : ext/string_map.cmx core/js_cmj_format.cmx \
351354
core/js_cmj_datasets.cmi
352355
core/lam_exit_code.cmx : core/lam.cmx core/lam_exit_code.cmi
353356
core/j.cmx : core/js_op.cmx core/js_fun_env.cmx core/js_closure.cmx \
354357
core/js_call_info.cmx ext/ident_set.cmx
355-
core/lam_module_ident.cmx : core/js_op.cmx common/js_config.cmx core/j.cmx \
356-
ext/hashtbl_make.cmx ext/hash_set.cmx ext/ext_ident.cmx \
357-
stubs/bs_hash_stubs.cmx core/lam_module_ident.cmi
358358
core/lam_compile_util.cmx : core/js_op.cmx core/lam_compile_util.cmi
359-
core/lam_stats.cmx : core/lam_module_ident.cmx core/lam.cmx \
360-
ext/int_hash_set.cmx ext/ident_set.cmx ext/ident_hashtbl.cmx \
361-
core/lam_stats.cmi
359+
core/lam_stats.cmx : core/lam.cmx ext/int_hash_set.cmx ext/ident_set.cmx \
360+
ext/ident_hashtbl.cmx core/lam_stats.cmi
362361
core/config_util.cmx : core/js_cmj_format.cmx depends/bs_exception.cmx \
363362
core/config_util.cmi
364363
core/lam_compile_defs.cmx : core/lam_stats.cmx core/j.cmx ext/ident_map.cmx \
@@ -403,10 +402,9 @@ core/lam_compile_const.cmx : core/lam_compile_util.cmx \
403402
core/lam_compile_const.cmi
404403
core/lam_inner.cmx : core/lam.cmx core/lam_inner.cmi
405404
core/lam_util.cmx : ext/literals.cmx core/lam_stats.cmx core/lam_print.cmx \
406-
core/lam_module_ident.cmx core/lam_analysis.cmx core/lam.cmx \
407-
common/js_config.cmx ext/ident_set.cmx ext/ident_map.cmx \
408-
ext/ident_hashtbl.cmx ext/ext_list.cmx ext/ext_filename.cmx \
409-
ext/ext_array.cmx core/lam_util.cmi
405+
core/lam_analysis.cmx core/lam.cmx common/js_config.cmx ext/ident_set.cmx \
406+
ext/ident_map.cmx ext/ident_hashtbl.cmx ext/ext_list.cmx \
407+
ext/ext_filename.cmx ext/ext_array.cmx core/lam_util.cmi
410408
core/lam_group.cmx : core/lam_print.cmx core/lam.cmx core/lam_group.cmi
411409
core/lam_pass_deep_flatten.cmx : core/lam_util.cmx core/lam_group.cmx \
412410
core/lam.cmx core/js_number.cmx ext/ident_set.cmx \

jscomp/bin/whole_compiler.d

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,22 @@ bin/whole_compiler.ml : ext/ident_set.ml
163163
bin/whole_compiler.ml : ext/ident_set.mli
164164
bin/whole_compiler.ml : ext/int_vec_util.ml
165165
bin/whole_compiler.ml : ext/int_vec_util.mli
166+
bin/whole_compiler.ml : ext/hash_set.ml
167+
bin/whole_compiler.ml : ext/hash_set.mli
168+
bin/whole_compiler.ml : ext/hashtbl_make.ml
169+
bin/whole_compiler.ml : ext/hashtbl_make.mli
170+
bin/whole_compiler.ml : core/js_call_info.ml
171+
bin/whole_compiler.ml : core/js_call_info.mli
172+
bin/whole_compiler.ml : core/js_closure.ml
173+
bin/whole_compiler.ml : core/js_closure.mli
174+
bin/whole_compiler.ml : core/js_fun_env.ml
175+
bin/whole_compiler.ml : core/js_fun_env.mli
166176
bin/whole_compiler.ml : ../ocaml/bytecomp/lambda.ml
167177
bin/whole_compiler.ml : ../ocaml/bytecomp/lambda.mli
178+
bin/whole_compiler.ml : core/js_op.ml
179+
bin/whole_compiler.ml : core/j.ml
180+
bin/whole_compiler.ml : core/lam_module_ident.ml
181+
bin/whole_compiler.ml : core/lam_module_ident.mli
168182
bin/whole_compiler.ml : core/ocaml_stdlib_slots.ml
169183
bin/whole_compiler.ml : ext/ordered_hash_map_gen.ml
170184
bin/whole_compiler.ml : ext/ordered_hash_map_local_ident.ml
@@ -175,14 +189,6 @@ bin/whole_compiler.ml : core/js_cmj_format.ml
175189
bin/whole_compiler.ml : core/js_cmj_format.mli
176190
bin/whole_compiler.ml : core/config_util.ml
177191
bin/whole_compiler.ml : core/config_util.mli
178-
bin/whole_compiler.ml : core/js_call_info.ml
179-
bin/whole_compiler.ml : core/js_call_info.mli
180-
bin/whole_compiler.ml : core/js_closure.ml
181-
bin/whole_compiler.ml : core/js_closure.mli
182-
bin/whole_compiler.ml : core/js_fun_env.ml
183-
bin/whole_compiler.ml : core/js_fun_env.mli
184-
bin/whole_compiler.ml : core/js_op.ml
185-
bin/whole_compiler.ml : core/j.ml
186192
bin/whole_compiler.ml : core/js_fold.ml
187193
bin/whole_compiler.ml : core/js_analyzer.ml
188194
bin/whole_compiler.ml : core/js_analyzer.mli
@@ -196,12 +202,6 @@ bin/whole_compiler.ml : ext/ident_map.ml
196202
bin/whole_compiler.ml : ext/ident_map.mli
197203
bin/whole_compiler.ml : core/lam_analysis.ml
198204
bin/whole_compiler.ml : core/lam_analysis.mli
199-
bin/whole_compiler.ml : ext/hash_set.ml
200-
bin/whole_compiler.ml : ext/hash_set.mli
201-
bin/whole_compiler.ml : ext/hashtbl_make.ml
202-
bin/whole_compiler.ml : ext/hashtbl_make.mli
203-
bin/whole_compiler.ml : core/lam_module_ident.ml
204-
bin/whole_compiler.ml : core/lam_module_ident.mli
205205
bin/whole_compiler.ml : core/lam_print.ml
206206
bin/whole_compiler.ml : core/lam_print.mli
207207
bin/whole_compiler.ml : ext/ext_int.ml

0 commit comments

Comments
 (0)