blob: 98c6a8bfa870f92cf1ae11f603200b4261acb982 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
|
(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Fu Yong Quah, Jane Street Europe *)
(* *)
(* Copyright 2017 Jane Street Group LLC *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
[@@@ocaml.warning "+a-4-9-30-40-41-42-66"]
open! Int_replace_polymorphic_compare
type t = string
let apply_arg = "apply_arg"
let apply_funct = "apply_funct"
let block_symbol = "block_symbol"
let block_symbol_get = "block_symbol_get"
let block_symbol_get_field = "block_symbol_get_field"
let closure = "closure"
let cond = "cond"
let cond_sequor = "cond_sequor"
let const_block = "const_block"
let const_bool = "const_bool"
let const_boxed_int = "const_boxed_int"
let const_char = "const_char"
let const_false = "const_false"
let const_float = "const_float"
let const_int = "const_int"
let const_one = "const_one"
let const_ptr = "const_ptr"
let const_ptr_one = "const_ptr_one"
let const_ptr_zero = "const_ptr_zero"
let const_sequand = "const_sequand"
let const_string = "const_string"
let const_true = "const_true"
let const_zero = "const_zero"
let denominator = "denominator"
let division_by_zero = "division_by_zero"
let dummy = "dummy"
let dup_func = "dup_func"
let dup_set_of_closures = "dup_set_of_closures"
let const_float_array = "const_float_array"
let fake_effect_symbol = "fake_effect_symbol"
let for_from = "for_from"
let for_to = "for_to"
let from_closure = "from_closure"
let full_apply = "full_apply"
let get_symbol_field = "get_symbol_field"
let const_immstring = "const_immstring"
let const_int32 = "const_int32"
let const_int64 = "const_int64"
let ignore = "ignore"
let is_zero = "is_zero"
let lifted_let_rec_block = "lifted_let_rec_block"
let meth = "meth"
let module_as_block = "module_as_block"
let const_nativeint = "const_nativeint"
let new_value = "new_value"
let numerator = "numerator"
let obj = "obj"
let offsetted = "offsetted"
let pabsfloat = "Pabsfloat"
let paddbint = "Paddbint"
let paddfloat = "Paddfloat"
let paddint = "Paddint"
let pandbint = "Pandbint"
let pandint = "Pandint"
let parraylength = "Parraylength"
let parrayrefs = "Parrayrefs"
let parrayrefu = "Parrayrefu"
let parraysets = "Parraysets"
let parraysetu = "Parraysetu"
let pasrbint = "Pasrbint"
let pasrint = "Pasrint"
let pbbswap = "Pbbswap"
let pbigarraydim = "Pbigarraydim"
let pbigarrayref = "Pbigarrayref"
let pbigarrayset = "Pbigarrayset"
let pbigstring_load_16 = "Pbigstring_load_16"
let pbigstring_load_32 = "Pbigstring_load_32"
let pbigstring_load_64 = "Pbigstring_load_64"
let pbigstring_set_16 = "Pbigstring_set_16"
let pbigstring_set_32 = "Pbigstring_set_32"
let pbigstring_set_64 = "Pbigstring_set_64"
let pbintcomp = "Pbintcomp"
let pbintofint = "Pbintofint"
let pbswap16 = "Pbswap16"
let pbytes_of_string = "Pbytes_of_string"
let pbytes_load_16 = "Pbytes_load_16"
let pbytes_load_32 = "Pbytes_load_32"
let pbytes_load_64 = "Pbytes_load_64"
let pbytes_set_16 = "Pbytes_set_16"
let pbytes_set_32 = "Pbytes_set_32"
let pbytes_set_64 = "Pbytes_set_64"
let pbytes_to_string = "Pbytes_to_string"
let pbyteslength = "Pbyteslength"
let pbytesrefs = "Pbytesrefs"
let pbytesrefu = "Pbytesrefu"
let pbytessets = "Pbytessets"
let pbytessetu = "Pbytessetu"
let pccall = "Pccall"
let pctconst = "Pctconst"
let pcvtbint = "Pcvtbint"
let pdirapply = "Pdirapply"
let pdivbint = "Pdivbint"
let pdivfloat = "Pdivfloat"
let pdivint = "Pdivint"
let pduparray = "Pduparray"
let pduprecord = "Pduprecord"
let pfield = "Pfield"
let pfield_computed = "Pfield_computed"
let pfloatcomp = "Pfloatcomp"
let pfloatfield = "Pfloatfield"
let pfloatofint = "Pfloatofint"
let pgetglobal = "Pgetglobal"
let pidentity = "Pidentity"
let pignore = "Pignore"
let pint_as_pointer = "Pint_as_pointer"
let pintcomp = "Pintcomp"
let pcompare_ints = "Pcompare_ints"
let pcompare_floats = "Pcompare_floats"
let pcompare_bints = "Pcompare_bints"
let pintofbint = "Pintofbint"
let pintoffloat = "Pintoffloat"
let pisint = "Pisint"
let pisout = "Pisout"
let plslbint = "Plslbint"
let plslint = "Plslint"
let plsrbint = "Plsrbint"
let plsrint = "Plsrint"
let pmakearray = "Pmakearray"
let pmakeblock = "Pmakeblock"
let pmodbint = "Pmodbint"
let pmodint = "Pmodint"
let pmulbint = "Pmulbint"
let pmulfloat = "Pmulfloat"
let pmulint = "Pmulint"
let pnegbint = "Pnegbint"
let pnegfloat = "Pnegfloat"
let pnegint = "Pnegint"
let pnot = "Pnot"
let poffsetint = "Poffsetint"
let poffsetref = "Poffsetref"
let pointer = "pointer"
let popaque = "Popaque"
let porbint = "Porbint"
let porint = "Porint"
let praise = "Praise"
let predef_exn = "predef_exn"
let prevapply = "Prevapply"
let project_closure = "project_closure"
let psequand = "Psequand"
let psequor = "Psequor"
let psetfield = "Psetfield"
let psetfield_computed = "Psetfield_computed"
let psetfloatfield = "Psetfloatfield"
let psetglobal = "Psetglobal"
let pstring_load_16 = "Pstring_load_16"
let pstring_load_32 = "Pstring_load_32"
let pstring_load_64 = "Pstring_load_64"
let pstringlength = "Pstringlength"
let pstringrefs = "Pstringrefs"
let pstringrefu = "Pstringrefu"
let psubbint = "Psubbint"
let psubfloat = "Psubfloat"
let psubint = "Psubint"
let pxorbint = "Pxorbint"
let pxorint = "Pxorint"
let patomic_cas = "Patomic_cas"
let patomic_exchange = "Patomic_exchange"
let patomic_fetch_add = "Patomic_fetch_add"
let patomic_load = "Patomic_load"
let prunstack = "Prunstack"
let pperform = "Pperform"
let presume = "Presume"
let preperform = "Preperform"
let ppoll = "Ppoll"
let pnop = "Pnop"
let pabsfloat_arg = "Pabsfloat_arg"
let paddbint_arg = "Paddbint_arg"
let paddfloat_arg = "Paddfloat_arg"
let paddint_arg = "Paddint_arg"
let pandbint_arg = "Pandbint_arg"
let pandint_arg = "Pandint_arg"
let parraylength_arg = "Parraylength_arg"
let parrayrefs_arg = "Parrayrefs_arg"
let parrayrefu_arg = "Parrayrefu_arg"
let parraysets_arg = "Parraysets_arg"
let parraysetu_arg = "Parraysetu_arg"
let partial_fun = "partial_fun"
let pasrbint_arg = "Pasrbint_arg"
let pasrint_arg = "Pasrint_arg"
let pbbswap_arg = "Pbbswap_arg"
let pbigarraydim_arg = "Pbigarraydim_arg"
let pbigarrayref_arg = "Pbigarrayref_arg"
let pbigarrayset_arg = "Pbigarrayset_arg"
let pbigstring_load_16_arg = "Pbigstring_load_16_arg"
let pbigstring_load_32_arg = "Pbigstring_load_32_arg"
let pbigstring_load_64_arg = "Pbigstring_load_64_arg"
let pbigstring_set_16_arg = "Pbigstring_set_16_arg"
let pbigstring_set_32_arg = "Pbigstring_set_32_arg"
let pbigstring_set_64_arg = "Pbigstring_set_64_arg"
let pbintcomp_arg = "Pbintcomp_arg"
let pbintofint_arg = "Pbintofint_arg"
let pbswap16_arg = "Pbswap16_arg"
let pbytes_of_string_arg = "Pbytes_of_string_arg"
let pbytes_to_string_arg = "Pbytes_to_string_arg"
let pbyteslength_arg = "Pbyteslength_arg"
let pbytesrefs_arg = "Pbytesrefs_arg"
let pbytesrefu_arg = "Pbytesrefu_arg"
let pbytessets_arg = "Pbytessets_arg"
let pbytessetu_arg = "Pbytessetu_arg"
let pccall_arg = "Pccall_arg"
let pctconst_arg = "Pctconst_arg"
let pcvtbint_arg = "Pcvtbint_arg"
let pdirapply_arg = "Pdirapply_arg"
let pdivbint_arg = "Pdivbint_arg"
let pdivfloat_arg = "Pdivfloat_arg"
let pdivint_arg = "Pdivint_arg"
let pduparray_arg = "Pduparray_arg"
let pduprecord_arg = "Pduprecord_arg"
let pfield_arg = "Pfield_arg"
let pfield_computed_arg = "Pfield_computed_arg"
let pfloatcomp_arg = "Pfloatcomp_arg"
let pfloatfield_arg = "Pfloatfield_arg"
let pfloatofint_arg = "Pfloatofint_arg"
let pgetglobal_arg = "Pgetglobal_arg"
let pidentity_arg = "Pidentity_arg"
let pignore_arg = "Pignore_arg"
let pint_as_pointer_arg = "Pint_as_pointer_arg"
let pintcomp_arg = "Pintcomp_arg"
let pcompare_ints_arg = "Pcompare_ints_arg"
let pcompare_floats_arg = "Pcompare_floats_arg"
let pcompare_bints_arg = "Pcompare_bints_arg"
let pintofbint_arg = "Pintofbint_arg"
let pintoffloat_arg = "Pintoffloat_arg"
let pisint_arg = "Pisint_arg"
let pisout_arg = "Pisout_arg"
let plslbint_arg = "Plslbint_arg"
let plslint_arg = "Plslint_arg"
let plsrbint_arg = "Plsrbint_arg"
let plsrint_arg = "Plsrint_arg"
let pmakearray_arg = "Pmakearray_arg"
let pmakeblock_arg = "Pmakeblock_arg"
let pmodbint_arg = "Pmodbint_arg"
let pmodint_arg = "Pmodint_arg"
let pmulbint_arg = "Pmulbint_arg"
let pmulfloat_arg = "Pmulfloat_arg"
let pmulint_arg = "Pmulint_arg"
let pnegbint_arg = "Pnegbint_arg"
let pnegfloat_arg = "Pnegfloat_arg"
let pnegint_arg = "Pnegint_arg"
let pnot_arg = "Pnot_arg"
let poffsetint_arg = "Poffsetint_arg"
let poffsetref_arg = "Poffsetref_arg"
let popaque_arg = "Popaque_arg"
let porbint_arg = "Porbint_arg"
let porint_arg = "Porint_arg"
let praise_arg = "Praise_arg"
let prevapply_arg = "Prevapply_arg"
let psequand_arg = "Psequand_arg"
let psequor_arg = "Psequor_arg"
let psetfield_arg = "Psetfield_arg"
let psetfield_computed_arg = "Psetfield_computed_arg"
let psetfloatfield_arg = "Psetfloatfield_arg"
let psetglobal_arg = "Psetglobal_arg"
let pstring_load_16_arg = "Pstring_load_16_arg"
let pstring_load_32_arg = "Pstring_load_32_arg"
let pstring_load_64_arg = "Pstring_load_64_arg"
let pbytes_load_16_arg = "Pbytes_load_16_arg"
let pbytes_load_32_arg = "Pbytes_load_32_arg"
let pbytes_load_64_arg = "Pbytes_load_64_arg"
let pbytes_set_16_arg = "Pbytes_set_16_arg"
let pbytes_set_32_arg = "Pbytes_set_32_arg"
let pbytes_set_64_arg = "Pbytes_set_64_arg"
let pstringlength_arg = "Pstringlength_arg"
let pstringrefs_arg = "Pstringrefs_arg"
let pstringrefu_arg = "Pstringrefu_arg"
let psubbint_arg = "Psubbint_arg"
let psubfloat_arg = "Psubfloat_arg"
let psubint_arg = "Psubint_arg"
let pxorbint_arg = "Pxorbint_arg"
let pxorint_arg = "Pxorint_arg"
let patomic_cas_arg = "Patomic_cas_arg"
let patomic_exchange_arg = "Patomic_exchange_arg"
let patomic_fetch_add_arg = "Patomic_fetch_add_arg"
let patomic_load_arg = "Patomic_load_arg"
let prunstack_arg = "Prunstack_arg"
let pperform_arg = "Pperform_arg"
let presume_arg = "Presume_arg"
let preperform_arg = "Preperform_arg"
let ppoll_arg = "Ppoll_arg"
let pnop_arg = "Pnop_arg"
let raise = "raise"
let raise_arg = "raise_arg"
let read_mutable = "read_mutable"
let remove_unused_arguments = "remove_unused_arguments"
let result = "result"
let send_arg = "send_arg"
let sequence = "sequence"
let set_of_closures = "set_of_closures"
let simplify_fv = "simplify_fv"
let staticraise_arg = "staticraise_arg"
let string_switch = "string_switch"
let switch = "switch"
let symbol = "symbol"
let symbol_field = "symbol_field"
let symbol_field_block = "symbol_field_block"
let the_dead_constant = "the_dead_constant"
let toplevel_substitution_named = "toplevel_substitution_named"
let unbox_free_vars_of_closures = "unbox_free_vars_of_closures"
let unit = "unit"
let zero = "zero"
let anon_fn_with_loc (sloc: Lambda.scoped_location) =
let loc = Debuginfo.Scoped_location.to_location sloc in
let (file, line, startchar) = Location.get_pos_info loc.loc_start in
let endchar = loc.loc_end.pos_cnum - loc.loc_start.pos_bol in
let pp_chars ppf =
if startchar >= 0 then Format.fprintf ppf ",%i--%i" startchar endchar in
if loc.Location.loc_ghost then "anon_fn"
else
Format.asprintf "anon_fn[%s:%i%t]"
(Filename.basename file) line pp_chars
let of_primitive : Lambda.primitive -> string = function
| Pidentity -> pidentity
| Pbytes_of_string -> pbytes_of_string
| Pbytes_to_string -> pbytes_to_string
| Pignore -> pignore
| Prevapply -> prevapply
| Pdirapply -> pdirapply
| Pgetglobal _ -> pgetglobal
| Psetglobal _ -> psetglobal
| Pmakeblock _ -> pmakeblock
| Pfield _ -> pfield
| Pfield_computed -> pfield_computed
| Psetfield _ -> psetfield
| Psetfield_computed _ -> psetfield_computed
| Pfloatfield _ -> pfloatfield
| Psetfloatfield _ -> psetfloatfield
| Pduprecord _ -> pduprecord
| Pccall _ -> pccall
| Praise _ -> praise
| Psequand -> psequand
| Psequor -> psequor
| Pnot -> pnot
| Pnegint -> pnegint
| Paddint -> paddint
| Psubint -> psubint
| Pmulint -> pmulint
| Pdivint _ -> pdivint
| Pmodint _ -> pmodint
| Pandint -> pandint
| Porint -> porint
| Pxorint -> pxorint
| Plslint -> plslint
| Plsrint -> plsrint
| Pasrint -> pasrint
| Pintcomp _ -> pintcomp
| Pcompare_ints -> pcompare_ints
| Pcompare_floats -> pcompare_floats
| Pcompare_bints _ -> pcompare_bints
| Poffsetint _ -> poffsetint
| Poffsetref _ -> poffsetref
| Pintoffloat -> pintoffloat
| Pfloatofint -> pfloatofint
| Pnegfloat -> pnegfloat
| Pabsfloat -> pabsfloat
| Paddfloat -> paddfloat
| Psubfloat -> psubfloat
| Pmulfloat -> pmulfloat
| Pdivfloat -> pdivfloat
| Pfloatcomp _ -> pfloatcomp
| Pstringlength -> pstringlength
| Pstringrefu -> pstringrefu
| Pstringrefs -> pstringrefs
| Pbyteslength -> pbyteslength
| Pbytesrefu -> pbytesrefu
| Pbytessetu -> pbytessetu
| Pbytesrefs -> pbytesrefs
| Pbytessets -> pbytessets
| Parraylength _ -> parraylength
| Pmakearray _ -> pmakearray
| Pduparray _ -> pduparray
| Parrayrefu _ -> parrayrefu
| Parraysetu _ -> parraysetu
| Parrayrefs _ -> parrayrefs
| Parraysets _ -> parraysets
| Pctconst _ -> pctconst
| Pisint -> pisint
| Pisout -> pisout
| Pbintofint _ -> pbintofint
| Pintofbint _ -> pintofbint
| Pcvtbint _ -> pcvtbint
| Pnegbint _ -> pnegbint
| Paddbint _ -> paddbint
| Psubbint _ -> psubbint
| Pmulbint _ -> pmulbint
| Pdivbint _ -> pdivbint
| Pmodbint _ -> pmodbint
| Pandbint _ -> pandbint
| Porbint _ -> porbint
| Pxorbint _ -> pxorbint
| Plslbint _ -> plslbint
| Plsrbint _ -> plsrbint
| Pasrbint _ -> pasrbint
| Pbintcomp _ -> pbintcomp
| Pbigarrayref _ -> pbigarrayref
| Pbigarrayset _ -> pbigarrayset
| Pbigarraydim _ -> pbigarraydim
| Pstring_load_16 _ -> pstring_load_16
| Pstring_load_32 _ -> pstring_load_32
| Pstring_load_64 _ -> pstring_load_64
| Pbytes_load_16 _ -> pbytes_load_16
| Pbytes_load_32 _ -> pbytes_load_32
| Pbytes_load_64 _ -> pbytes_load_64
| Pbytes_set_16 _ -> pbytes_set_16
| Pbytes_set_32 _ -> pbytes_set_32
| Pbytes_set_64 _ -> pbytes_set_64
| Pbigstring_load_16 _ -> pbigstring_load_16
| Pbigstring_load_32 _ -> pbigstring_load_32
| Pbigstring_load_64 _ -> pbigstring_load_64
| Pbigstring_set_16 _ -> pbigstring_set_16
| Pbigstring_set_32 _ -> pbigstring_set_32
| Pbigstring_set_64 _ -> pbigstring_set_64
| Pbswap16 -> pbswap16
| Pbbswap _ -> pbbswap
| Pint_as_pointer -> pint_as_pointer
| Popaque -> popaque
| Patomic_cas -> patomic_cas
| Patomic_exchange -> patomic_exchange
| Patomic_fetch_add -> patomic_fetch_add
| Patomic_load _ -> patomic_load
| Prunstack -> prunstack
| Pperform -> pperform
| Presume -> presume
| Preperform -> preperform
| Ppoll -> ppoll
| Pnop -> pnop
let of_primitive_arg : Lambda.primitive -> string = function
| Pidentity -> pidentity_arg
| Pbytes_of_string -> pbytes_of_string_arg
| Pbytes_to_string -> pbytes_to_string_arg
| Pignore -> pignore_arg
| Prevapply -> prevapply_arg
| Pdirapply -> pdirapply_arg
| Pgetglobal _ -> pgetglobal_arg
| Psetglobal _ -> psetglobal_arg
| Pmakeblock _ -> pmakeblock_arg
| Pfield _ -> pfield_arg
| Pfield_computed -> pfield_computed_arg
| Psetfield _ -> psetfield_arg
| Psetfield_computed _ -> psetfield_computed_arg
| Pfloatfield _ -> pfloatfield_arg
| Psetfloatfield _ -> psetfloatfield_arg
| Pduprecord _ -> pduprecord_arg
| Pccall _ -> pccall_arg
| Praise _ -> praise_arg
| Psequand -> psequand_arg
| Psequor -> psequor_arg
| Pnot -> pnot_arg
| Pnegint -> pnegint_arg
| Paddint -> paddint_arg
| Psubint -> psubint_arg
| Pmulint -> pmulint_arg
| Pdivint _ -> pdivint_arg
| Pmodint _ -> pmodint_arg
| Pandint -> pandint_arg
| Porint -> porint_arg
| Pxorint -> pxorint_arg
| Plslint -> plslint_arg
| Plsrint -> plsrint_arg
| Pasrint -> pasrint_arg
| Pintcomp _ -> pintcomp_arg
| Pcompare_ints -> pcompare_ints_arg
| Pcompare_floats -> pcompare_floats_arg
| Pcompare_bints _ -> pcompare_bints_arg
| Poffsetint _ -> poffsetint_arg
| Poffsetref _ -> poffsetref_arg
| Pintoffloat -> pintoffloat_arg
| Pfloatofint -> pfloatofint_arg
| Pnegfloat -> pnegfloat_arg
| Pabsfloat -> pabsfloat_arg
| Paddfloat -> paddfloat_arg
| Psubfloat -> psubfloat_arg
| Pmulfloat -> pmulfloat_arg
| Pdivfloat -> pdivfloat_arg
| Pfloatcomp _ -> pfloatcomp_arg
| Pstringlength -> pstringlength_arg
| Pstringrefu -> pstringrefu_arg
| Pstringrefs -> pstringrefs_arg
| Pbyteslength -> pbyteslength_arg
| Pbytesrefu -> pbytesrefu_arg
| Pbytessetu -> pbytessetu_arg
| Pbytesrefs -> pbytesrefs_arg
| Pbytessets -> pbytessets_arg
| Parraylength _ -> parraylength_arg
| Pmakearray _ -> pmakearray_arg
| Pduparray _ -> pduparray_arg
| Parrayrefu _ -> parrayrefu_arg
| Parraysetu _ -> parraysetu_arg
| Parrayrefs _ -> parrayrefs_arg
| Parraysets _ -> parraysets_arg
| Pctconst _ -> pctconst_arg
| Pisint -> pisint_arg
| Pisout -> pisout_arg
| Pbintofint _ -> pbintofint_arg
| Pintofbint _ -> pintofbint_arg
| Pcvtbint _ -> pcvtbint_arg
| Pnegbint _ -> pnegbint_arg
| Paddbint _ -> paddbint_arg
| Psubbint _ -> psubbint_arg
| Pmulbint _ -> pmulbint_arg
| Pdivbint _ -> pdivbint_arg
| Pmodbint _ -> pmodbint_arg
| Pandbint _ -> pandbint_arg
| Porbint _ -> porbint_arg
| Pxorbint _ -> pxorbint_arg
| Plslbint _ -> plslbint_arg
| Plsrbint _ -> plsrbint_arg
| Pasrbint _ -> pasrbint_arg
| Pbintcomp _ -> pbintcomp_arg
| Pbigarrayref _ -> pbigarrayref_arg
| Pbigarrayset _ -> pbigarrayset_arg
| Pbigarraydim _ -> pbigarraydim_arg
| Pstring_load_16 _ -> pstring_load_16_arg
| Pstring_load_32 _ -> pstring_load_32_arg
| Pstring_load_64 _ -> pstring_load_64_arg
| Pbytes_load_16 _ -> pbytes_load_16_arg
| Pbytes_load_32 _ -> pbytes_load_32_arg
| Pbytes_load_64 _ -> pbytes_load_64_arg
| Pbytes_set_16 _ -> pbytes_set_16_arg
| Pbytes_set_32 _ -> pbytes_set_32_arg
| Pbytes_set_64 _ -> pbytes_set_64_arg
| Pbigstring_load_16 _ -> pbigstring_load_16_arg
| Pbigstring_load_32 _ -> pbigstring_load_32_arg
| Pbigstring_load_64 _ -> pbigstring_load_64_arg
| Pbigstring_set_16 _ -> pbigstring_set_16_arg
| Pbigstring_set_32 _ -> pbigstring_set_32_arg
| Pbigstring_set_64 _ -> pbigstring_set_64_arg
| Pbswap16 -> pbswap16_arg
| Pbbswap _ -> pbbswap_arg
| Pint_as_pointer -> pint_as_pointer_arg
| Popaque -> popaque_arg
| Patomic_cas -> patomic_cas_arg
| Patomic_exchange -> patomic_exchange_arg
| Patomic_fetch_add -> patomic_fetch_add_arg
| Patomic_load _ -> patomic_load_arg
| Prunstack -> prunstack_arg
| Pperform -> pperform_arg
| Presume -> presume_arg
| Preperform -> preperform_arg
| Ppoll -> ppoll_arg
| Pnop -> pnop_arg
|