You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -12,7 +12,8 @@ let avoid_reinterprets = "avoid-reinterprets"
12
12
(** removes arguments to calls in an lto-like manner *)
13
13
let dae ="dae"
14
14
15
-
(** removes arguments to calls in an lto-like manner, and optimizes where we removed *)
15
+
(** removes arguments to calls in an lto-like manner, and optimizes where we
16
+
removed *)
16
17
let dae_optimizing ="dae-optimizing"
17
18
18
19
(** refine and merge abstract (never-created) types *)
@@ -36,12 +37,18 @@ let const_hoisting = "const-hoisting"
36
37
(** propagate constant struct field values *)
37
38
let cfp ="cfp"
38
39
40
+
(** propagate constant struct field values, using ref.test *)
41
+
let cfp_reftest ="cfp-reftest"
42
+
39
43
(** removes unreachable code *)
40
44
let dce ="dce"
41
45
42
46
(** forces all loads and stores to have alignment 1 *)
43
47
let dealign ="dealign"
44
48
49
+
(** propagate debug location from parents or previous siblings to child nodes *)
50
+
let propagate_debug_locs ="propagate-debug-locs"
51
+
45
52
(** instrument the wasm to convert NaNs into 0 at runtime *)
46
53
let denan ="denan"
47
54
@@ -66,6 +73,9 @@ let duplicate_function_elimination = "duplicate-function-elimination"
66
73
(** emit the target features section in the output *)
67
74
let emit_target_features ="emit-target-features"
68
75
76
+
(** modify the wasm (destructively) for closed-world *)
77
+
let enclose_world ="enclose-world"
78
+
69
79
(** leaves just one function (useful for debugging) *)
70
80
let extract_function ="extract-function"
71
81
@@ -75,7 +85,8 @@ let extract_function_index = "extract-function-index"
75
85
(** flattens out code, removing nesting *)
76
86
let flatten ="flatten"
77
87
78
-
(** emulates function pointer casts, allowing incorrect indirect calls to (sometimes) work *)
88
+
(** emulates function pointer casts, allowing incorrect indirect calls to
89
+
(sometimes) work *)
79
90
let fpcast_emu ="fpcast-emu"
80
91
81
92
(** reports function metrics *)
@@ -84,15 +95,14 @@ let func_metrics = "func-metrics"
84
95
(** generate dynCall fuctions used by emscripten ABI *)
85
96
let generate_dyncalls ="generate-dyncalls"
86
97
87
-
(** generate dynCall functions used by emscripten ABI, but only for functions with i64 in their signature (which cannot be invoked via the wasm table without JavaScript BigInt support). *)
98
+
(** generate dynCall functions used by emscripten ABI, but only for functions
99
+
with i64 in their signature (which cannot be invoked via the wasm table
100
+
without JavaScript BigInt support). *)
88
101
let generate_i64_dyncalls ="generate-i64-dyncalls"
89
102
90
103
(** generate global effect info (helps later passes) *)
91
104
let generate_global_effects ="generate-global-effects"
92
105
93
-
(** generate Stack IR *)
94
-
let generate_stack_ir ="generate-stack-ir"
95
-
96
106
(** refine the types of globals *)
97
107
let global_refining ="global-refining"
98
108
@@ -102,18 +112,34 @@ let gsi = "gsi"
102
112
(** globally optimize GC types *)
103
113
let gto ="gto"
104
114
105
-
(** Grand Unified Flow Analysis: optimize the entire program using information about what content can actually appear in each location *)
115
+
(** Grand Unified Flow Analysis: optimize the entire program using information
116
+
about what content can actually appear in each location *)
106
117
let gufa ="gufa"
107
118
119
+
(** GUFA plus add casts for all inferences *)
120
+
let gufa_cast_all ="gufa-cast-all"
121
+
108
122
(** GUFA plus local optimizations in functions we modified *)
109
123
let gufa_optimizing ="gufa-optimizing"
110
124
125
+
(** optimizes J2CL specific constructs. *)
126
+
let optimize_j2cl ="optimize-j2cl"
127
+
128
+
(** Merges itable structures into vtables to make types more compact *)
129
+
let merge_j2cl_itables ="merge-j2cl-itables"
130
+
111
131
(** apply more specific subtypes to type fields where possible *)
112
132
let type_refining ="type-refining"
113
133
134
+
(** apply more specific subtypes to type fields where possible (using GUFA) *)
135
+
let type_refining_gufa ="type-refining-gufa"
136
+
114
137
(** replace GC allocations with locals *)
115
138
let heap2local ="heap2local"
116
139
140
+
(** optimize heap (GC) stores *)
141
+
let heap_store_optimization ="heap-store-optimization"
142
+
117
143
(** inline __original_main into main *)
118
144
let inline_main ="inline-main"
119
145
@@ -132,8 +158,8 @@ let jspi = "jspi"
132
158
(** legalizes i64 types on the import/export boundary *)
133
159
let legalize_js_interface ="legalize-js-interface"
134
160
135
-
(** legalizes i64 types on the import/export boundary in a minimal manner, only on things only JS will call*)
0 commit comments