Caml1999T037{*YV$C(LivenessР$Mach$Mach3asmcomp/liveness.mlSS@@ 3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A頰=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A󠰠  @+End_of_file\#$@@@A@'FailureY#,@'@@A@0Invalid_argumentX#5@0@@A $#@-Match_failureV#>@@=@9@;@@a@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@@@@A3@@@S@@@3@@@&DomainmAUU@JA@БA+!t!BVV@@;@@@A#Reg#Set!t@@@ +@@@@VV@@@@FA@@Aг#RegVV@VV@@V@ @@$3@I/;@@@A7@@@ 0@@@@@%@@@"@@$@@&@@&%@3@U@@@ఠ#botjWW@ GA@@#Reg#Set!t@@@ 3C@ 23@rXR@@@డO#Set%empty#RegWW@ WW@@"W#W@ @(@@@J@'set.mliM ~ M ~ @@+Stdlib__SetE@ @@2(@A@1W@@@+@ఠ$joink>X?X@QHA@@@H@@@ 9@M@@@ 8P@@@ 7@@ 6@@ 5C@ 43LKKLLLLL@J_X@Y@Z@@@డ#Set%union#RegcXdX@ gXhX@@lXmX@ @@t@@@\@y@@@[|@@@Z@@Y@@X@T_]aU_]w@@SI@@@>1@A@X@@@4@ఠ)lessequallYY @IA@@@@@@ ?@@@@ >$boolE@@@ =@@ <@@ ;C@ :3@Vng@h@i@@@డ#Set&subset#RegYY@ YY@@YY@ @@@@@@@@@/@@@@@@@@((() @@f@@@A1@A@Y@@@4@*$A@@8@VO@P@Q@@3@>Y@@UZ @3@R@@@@U@@(AnalyzerxC\")\"1@ KA@гР(Dataflow(Backward(Dataflow \"4 \"<@  \"=\"E@@@!Dq(Dataflow&DOMAIN'analyzer*exnhandler&optionL@!t@@@ V!t@@@ U@@ T@@@ S)exnescape!t@@@ R@@@ Q(transfer@$Mach+instruction@@@ P$next+!t@@@ O#exn4!t@@@ N9!t@@@ M@@ L@@ K@@ J@!+instruction@@@ I@J!t@@@ E@@#intA@@@ HY!t@@@ G@@ F@@ D@@ C@@ B@@ A@@ @@4asmcomp/dataflow.mli^~b>_@@wL@@@3@@A@F@a@@@@@@@Р&Domain\"F\"L@@A@Y@t@$@@@@\"M@w@"@@@ &@@@ @@ @@@ 0@@@ @@@ @@@@ ?@@@ E@@@ I~@@@ @@ @@ @@ @}|@@@ @W{@@@ @@z@@@ bw@@@ @@ @@ @@ @@ @@ @@ @v@r@@q@@\""S@T@t@ఠ(transfery^OS^O[@#LA@@@$Mach+instruction@@@ JE@ $next#Reg#Set!t@@@ #E@ #exn>!t@@@ EE@ E@ @@ E@ @@ E@ @@ E@ 3=<<=====@R@@@@FO@@@࣠@!i{AS^O\T^O]@fMA@@?3RQQRRRRR@L[^OO\A M n@@@@@  @::|A>f^O_g^Oc@yNA@@B3eddeeeee@ U@@@@@@n^O^@99}A=w^Oex^Oh@OA@@A3vuuvvvvv@V@@@@@@^Od@@ఐ@@@ =K@ CK@ @@@O@@ E@ $E@ E@ E@ E@ E@ E@ E@ <'@@@(@Ġ#Iop@cAc@)ఠ"op~IcJc@\PA@@1@@@ @@@@@@@@ @@@@@ @@@డ"&&beflcefn@@$boolE@@@K@@@@J @@@I@@H@@G(%sequandBA @@@@*stdlib.mli@@&Stdlib]@"!@@@@@@ J@@@@ I@@@ H@@ G@@ F3@NG@H@I@@@@డ1operation_is_pured"+d"<@@@@@$boolE@@@@@@qppqp@@@@@@@@@ Z@@@ Y@@ X*@@ఐ|"opd"=d"?@4@@@@@ aL@ cL@ b>@@0 @@m@@@ V@ dL@ `F@@డ 2disjoint_set_array#Regefoefr@ efsef@@@!t@@@K@@@@J@@@I$boolE@@@H@@G@@F@WGGWGw@@m@$@@@@@@ k@.@@@ j@@@ i@@@ h@@ g@@ f@@ఐ $next&ef'ef@@@@@ఐ堐!i5ef6ef@˰@@ @#res@@@=,@@@<@@;@@:@UU@@k@!@@@@@@ @@@@ @@@ B@@@ @@ @@ @@@ఐ$nextkBkkBo@o@@M@@ఐ!ikBpkBq@@@\@#reskBrkBu@B @@H#@@@ @@@ L@ L@ n@@a@@to@A@kBJ@@@ఠ&acrosslyly@.RA@@#@@@ K@ 3@@@@@@డ53operation_can_raise2r3r@@@@@@@@@@@ww@@#@@@@)@@@ @@@ @@ '@@ఐ "opUrVr@İ@@@@@@ L@ L@ ;@@. @@ @@@ L@ A@డ#Set%union#Regvsws @ zs {s @@s s @ @ @@@@@@ @@@@ @@@ @@ @@ l@@ఐ'across1s s @v@@@@@ L@ L@ @@ఐ9#exns s @@@w@@<@@@ఐ%'across1t  't  .@@@K@ @r@@@A@ly@@ ఐ~!iu 2 :u 2 ;@d@@3@@@@@@$liveu 2 <u 2 @@ఐƠ&acrossu 2 Du 2 J@@@@@@ K@ @@@&@@@ K@ @డ5-add_set_array#Regv L Tv L W@  v L X v L e@@@@@@9@*(@@@8@@@7!t@@@6@@5@@4@&T'T@@j@!@@@@@@ @@@@@ @@@ @@@ @@ @@ ]@@ఐ&across 8v L f 9v L l@g@@@@@ K@ K@ q@@ఐ!i Nv L m Ov L n@@@9@#arg Uv L o Vv L r@ @@Qx@@@ @@@ K@ K@ @@h@@{  @°@@@@ఐ!i L{   M{  @@@7@#arg S{   T{  @ @@Ov@@@ @@@ K@ K@ @@H@@2K@ @q@@$@Ġ$Iend u|   v|  @;$Iendw@@@@BG@AS  S  @@@_v@@@  @@@@@ @@@Ġ&Icatch |   |  @;&Icatch@#Cmm(rec_flag@@@U$listK@@@@X@@@@Y@@W@@@V@@@Z@CCBG@A X p r X p @@@{@@ |   |  @@+@@@ .@@@'@$@@@ @@@@ @@ @@@ @@@@@@@ E@@@K@@8@@@ I@@I@@d @@<@@@ M@Ġ%Iexit |   |  @;%Iexit@2@@@[@ADBG@AFY  GY  @@@|@@ |   |  @@@@@ k@@@@@^@@@ o@@o@@ @@b@@@ s@Ġ(Itrywith |   |  @;(Itrywith @@@@\@@@]@BEBG@AoZ  pZ  @@@}@@ |   |  @@@@@ @@@ @@@ @@@ @@@@@ @@@@@@@@@ @@@ ఐ렐!i ;}   <}  @Ѱ@@&@$live B}   C}  @eఐ砐$next K}   L}  @а@@&@@@@@@ &K@ %@ఐ$next [~  # \~  '@@@6@$@@@Ġ&Iraise i ( , j ( 2@;&Iraisek@&Lambda*raise_kind@@@^@AFBG@A[  [  @@@\~@@ ~ ( 3  ( 4@@@@@ !@@@@@@@@ "@@@@@ #@@@ ఐE!i @ 8 > @ 8 ?@+@@ @$live @ 8 @ @ 8 D@ఐ0#exn @ 8 H @ 8 K@@@n@@@@@@ 0K@ /@డ -add_set_array#Reg A M S A M V@  A M W A M d@@@@@@@@ 7@@@@ 6@@@ 5@@@ 4@@ 3@@ 2E@@ఐi#exn A M e A M h@O@@R@@ఐ!i A M i A M j@@@a@#arg A M k@H @@@@@ D@@@ CK@ KK@ Hr@@G@@K@ Bu@p@@v@@@A _km@@@A@E@ @A@@@ɠ@ఠ*exnhandler C p t C p ~@ )UA@@@ "@@@!E@  '@@@ E@ @@E@ 3 # " " # # # # #@@@@@@࣠@.before_handlerA 6C p  7C p @ IVA@@3 5 4 4 5 5 5 5 5@) >C p p ?D  @@@@@  @@డ #Set&remove#Reg SD   TD  @  WD   XD  @@ \D   ]D  @ @@ d#elt@@@W@ k@@@V n@@@U@@T@@S@ FY 5 9 GY 5 R@@ EH@!@@@@A@@$@#@@@ @@@ @@@@@@@3        @O[m@R@S@@@@డ$Proc.loc_exn_bucket$Proc D   D  @  D   D  @@#Reg!t@@@@0asmcomp/proc.mlidd@@$ProcQ@@@R@ATZ@A\@@G@@@"G@G@@@G@>@@ఐ.before_handler D  @G@@J@@@@K@A@E@@A@@@@ఠ'fundecl F   F  @ WA@@@'fundecl@@@E@-@@@ZE@@@E@3        @@@@@@࣠@!fA F   F  @ XA@@3        @+ F   N J O@@@@@  @@@@ఠ.initially_live G   G  @ 1YA@@  @@@G@3 # " " # # # # #@!-A@$@%@@@@@ /G   0G  @@@ @@@  @@@@@G@@@ =G   >G  @@@!@@@@డ Y'analyze(Analyzer RH   SH  @  VH   WH  @@ 8 6@  2@@@  1@@@@@@@@ 0 F  .@@@@@@ -@ + (@@@ '  %@@@ $  "@@@  !@@@@@@@@@@  @@@@r@@@Π@@ @@@h@@@@@@@@@@@@@@@@ @ RM@@  @J@@@I@AK   @ @6@5@@@@@@@  Q@@@@@@ }@P@@@ vO@@@ rN@@@M@AO'@@I@H@@@@@@@@@S@@@@@@@堠@@ n@@@@@@@@@@@@@@@@@@@ Ӑภ$Some ; A T Q@@W@ CA@AA@A @@ Cఐ*exnhandler H   H  @@@@ @@@= @@@<@@;@@ @ l @@@E@ ภ$None ; m&@@@@AA@A @@ l@ @ @@@G@@@F@ ఐ &(transfer6H  7H  @@@@@@@" @A@A@@\H@[@@H@XH@W@@! @A@@ZH@Y@@ @@@@@@H@Q8@@ఐk!flH  mH  @D@@G@(fun_bodysH  tH  &@3(fun_body@@@j `@@@c@@B3(fun_name  @@@`@@@@A ^  # ^  4@@ i@3(fun_args ۠ c!t@@@b@@@a@@A@A _ 5 9 _ 5 O@@ z@$33fun_codegen_options$.codegen_option@@@e@@@d@@C)@A a k o a k @@ @3'fun_dbg5 !t@@@f@@D5@A b   b  @@ @3(fun_pollAJ.poll_attribute@@@g@@EA@A c   c  @@ @33fun_num_stack_slotsM @@@i@@@h@@FP@A %d   &d @@ @@A )` P T *` P j@@ @jb@@L@@@H@`H@^@@j@@@ @@@aH@@A@G  t@@@ఠ*wrong_liveJ s yJ s @ZA@@ @@@rG@b3@@@@@@డ E#Set$diff#RegJ s J s @ J s J s @@J s J s @ @@ @@@k@ %@@@j (@@@i@@h@@g@ i(, i(A@@ L@@@@ 2@@@h@ 7@@@g :@@@f@@e@@d@@@ఐ'.initially_liveEJ s FJ s @J@@$@A&@@xH@w@@uW@@డ ,set_of_array#RegbJ s cJ s @ fJ s gJ s @@ @@@  @@@}@@@| @@@{@@z{@@ఐ!fJ s J s @Z@@@(fun_argsJ s J s @ @@  @@@@@@I@I@@@J s J s @@ @@@s@I@@@ @@@A@J s u @@డ#notK  K  @@ M@@@F Q@@@E@@D(%boolnotAA E@@@ CLL DLt@@ B\@@@@@@@@@@@@3@@@@@@@డ#Set(is_empty#RegK  K  @ K  K  @@K  K  @ @@ @@@ V@@@@@@ '$'( '$'?@@ b@@@@@@@@@@@@:@@ఐ*wrong_liveK  K  @D@@@@@H@H@N@@K  K  @@n@@@@H@X@@w @@@@@G@^@డ$Misc,fatal_errorf$Misc:L  ;L  @ >L  ?L  @@@&Stdlib'format4!a@5&Format)formatter@@@A$unitF@@@B!b@9@@@@@@?@.utils/misc.mli\DD\D@@$MiscA@2-@@@*@@*@@@F@@#Reg#Set!t@@@WF@F@7@@@F@@@@@F@@F@@@F@@@F@K@@@G@@@ F@@Aa9 ,'format6?@@@@@A8CamlinternalFormatBasics'format6X@2@1@4@7@6@@@@8@@@@l@@@@ภ8CamlinternalFormatBasics&FormatL  L  'A;&Format8CamlinternalFormatBasics'format6!a@!b@!c@!d@!e@!f@@@@@'#fmt$ @@@Ӡ&stringQ@@@@B@@A@A*@@@r@ภU(Open_boxW;(Open_box%!a@!b@!c@!d@!e@!f@@@@@"@@@@AA@BAAH Q SI  @@@O@ภ&Format֠ภ-End_of_format;-End_of_format!f@!b@!c@!e@@@@@@@@AYAA.../!@@@y@@@ؠH@7F@F@"G@3G@DsF@G@#G@4G@E H@;H@<@@@FG@Q<@ %@%@@@@GG@TG@SH@@,@)H@'(!"#H@+H@,@@@5G@CW@@;@ H@5./2F@dG@-G@@@@$G@2h@ภV .String_literalU;.String_literal+!a@!b@!c@!d@!e@!f@@@@B@A@@@CR'#@@@D@BKAYAAI$}$}J$%@@@k@1Liveness.fundecl:@@@@@eG@hG@g@ภX.Formatting_litZ;.Formatting_litw!a@e!b@f!c@g!d@h!e@i!f@j@@@^@.formatting_lit@@@_($ @@@`@BQAYAA)()())@@@q@ภ-Force_newline;-Force_newline@@@@@@CGC@A~ E G~ E V@@@B@@@)@@@yG@~ @ภ%Alpha;%AlphaР@@!b@U@!x@Q!c@T@@X@@W@ !a@P@@V@@U !d@V!e@W!f@X@@@T@+"@@@Y@AOAYAA''(.(j@@@.o@ภB@ภJ)Close_boxI;)Close_boxg@@@@GC@A z z @@@F~@@P@@@@G@q@ภ_|]{@]@3H@_F@cF@wF@H@,F@xF@H@H@ H@H@@@@G@@@}@S F@H@H@H@@@@G@@@@c H@j,$QH@m'H@o@@@zG@@@@sH@V:^aH@YaH@[@@@fG@v@@@hoH@@@@%G@b@@@7H@ H@@@@G@!@9@[Liveness.fundecl:@ %a@]@@@@@G@G@@@@@}SJ6#@A"]G@XG@FG@7G@@A2qG@lG@ZG@]G@`G@OG@@@G@/@G@@@G@ )@@డ)Printmach®set)PrintmachM ( .M ( 7@  M ( 8 M ( >@@@&Stdlib&Format)formatter@@@@@@@$unitF@@@@@@@@5asmcomp/printmach.mliVV@@)PrintmachB@&!@@F@Ta@@ఐF*wrong_live8M ( ?9M ( I@k@@G@Yp@@>K  2@@r@@@K  4@@t@5@@G@\6@@@@7A@^E@\>@A@;@;:@Q@@b@`@@Z@@KT@@C%@?Y@un@o@p@@3ONNOOOOO@_x@@@t(LivenessF@AʱCC@AFB@AhIA@AL@@@ H************************************************************************jA@@kA@L@ H pBMMqBM@ H OCaml vCwC@ H |D}D3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt E44E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ S Liveness analysis. Annotate mach code with the set of regs live at each point. P77QM@9 no regs are live across aa@1 no side effects d"Pd"e@< results are not used after efef@ 5 This operation is dead code. Ignore its arguments. gg@ . Operations that can raise an exception (function calls, bounds checks, allocations) can branch to the nearest enclosing try ... with. Hence, everything that must be live at the beginning of the exception handler must also be live across this instr. mq@ B Sanity check: only function parameters can be live at entrypoint I * ,I * r@@*./ocamlopt)-nostdlib"-I(./stdlib"-I1otherlibs/dynlink"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I'asmcomp"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events2-function-sections"-c ! F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest ?>3210/.-,+*)('&%$#"! @@0g>˨i!`~K3:99:::::@8@@$Arch0;:1-K^1ʹ*}(Asttypes0>n{T8cئ+Backend_var0G}afTd5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Cmi_format0c˯7͗ԩmݠ#Cmm0rhmsT4u%{*Data_types0I'Ue`wq]Ѡh05!bv)Debuginfo0PtJ=^w/#Env0zV L{YWI*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`(Interval0DہX9`&Lambda0z1x]&ZT0W;T[m;)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc0( C'~A̠$Misc0ob]6>Vê>+Outcometree0euWS~d栠)Parsetree0Uҩ=p>*%"e$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠0m1TaW XF 10t8R'2q젠#Reg0dfǝhO%Shape0oNՄBH&Stdlib0Lku]8_٠+Stdlib__Arg0اp2/٠r)w.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Hݶ/m.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0s)Targetint0!2JTI ϝ.Type_immediacy0A^abOhՠ%Types0xH+}q)Unit_info0ڀh%((Warnings0mJɒkgr