Caml1999T031+.<'LinscanР(Interval(Interval2asmcomp/linscan.mlSS@@ 0@@@@@@%arrayH8@@M@A@A@@@@@@&_none_@@A@@@ $boolE8@@%false^@@ @$true_@@@@@A@@@@@@A@$charB8@@@A@@@@@@A@#exnG8@@AA@@@@@@@@5extension_constructorP8@@@A@@@@@ @@@%floatD8@@@A@@@@@$@@@*floatarrayQ8@@@A@@@@@(@@@#intA8@@@A@@@@@,@A@%int32L8@@@A@@@@@0@@@%int64M8@@@A@@@@@4@@@&lazy_tN8@@O@A@A@Y@@@@@=@@@$listI8@@P@A"[]a@@J@"::b@@@Q@@W@ @@A@Y@@@@@Z@@@)nativeintK8@@@A@@@@@^@@@&optionJ8@@S@A$Nonec@@k@$Somed@@r@@@A@Y@@@@@u@@@&stringO8@@@A@@@@@y@@@$unitF8@@"()`@@@@@A@@@@@@A@ .Assert_failure\ p@@@@Jm@@@@@@V@@A=ocaml.warn_on_literal_pattern@@0Division_by_zeroY @@@A  @+End_of_fileX !@@@A@'FailureU )@%@@A@0Invalid_argumentT 2@.@@A$#@-Match_failureR ;@:67@@\@@Aʠ21@ )Not_foundV I@@@AҠ:9@-Out_of_memoryS Q@@@AڠBA@.Stack_overflowZ Y@@@A⠰JI@.Sys_blocked_io[ a@@@A꠰RQ@)Sys_errorW i@e@@A󠰠[Z@:Undefined_recursive_module] r@qmn@@c@@Aih@ %bytesC8@@@A@@@@@@@@&Stdlib@@@@A054455555@4C@@=S<@@=@0:99:::::@8@@Р#Reg#RegMTNT@@ 0LKKLLLLL@@@@@A0MLLMMMMM@@@UT@@ @0RQQRRRRR@@@A(/class_intervals.AaXbX@@8@@(ci_fixed/Aw!t@@@@@@uZ vZ 0@@A)ci_active0A!t@@@@@@[15[1X@@B+ci_inactive1A&!t@@@@@@ư\Y]\Y@@C@@A@@@@@X]@@@@@@>>Z Z @AШ@гB$listZ +Z /@гG(IntervalIZ  Z *@@P0@lb8@@@A@@@@@"@@@@@@@@X@@[@C@@P@LL[1=[1F@AШ@гP$list[1S[1W@гU(IntervalW[1H[1R@@^!@@@c" @@f@C@%@[@WW\Ye\Yp@AШ@г[$list\Y}\Y@г`(Intervalb\Yr\Y|@@i?@@@n@ @@q@C@C@f@@A@b@@ba@0@@@@ࠠ&active2 __@@@%arrayH@@@ B@ )@@@ 7B@0@@@@డ%Array$init-_._@@#intA@@@C@@ @@@B!a@@@A2@@@@@@?@@>@)array.mliP B BP B k@@-Stdlib__ArrayH"!@@@@@B@ ,@@@@B@ +C@B@ *IF@@B@ (@B@ '@B@ &@@@డ$Proc4num_register_classes$Procn_o_@#intA@@@ @0asmcomp/proc.mliVV@@$ProcA@@P@@C@ :C@ C@ f@@@%param}@__@@V@@E@ v@@ະ,2@@@4A@,$#AA@A@,AB@A@@A,@)(ci_fixed``@ภ"[]``@8:GD@@R@@@@AA@A@@=@ @@ON@@D@ @@D@ D@ @")ci_activeaa@ภ aa@@@@UT@@D@ @@D@ D@ @:+ci_inactivebb@ภ9bb@8@@@[Z@@D@ @@D@ D@ @@@_c@@B@ @@A_c@@@@@C@ 9@C@ 8C@ @@ @@@@_ @@ @堰Aࠠ6insert_interval_sorted~g8@g8V@@@@(Interval!t@@@ WB@ @B@ 0@@@ rB@ B@ d@@@ hB@ @@ @B@ 0+**+++++@)#@$@DD@@@@!i>g8W?g8X@@@-0<;;<<<<<@8@4@*"@@ @@ C@ @9@[E@@@@@"ilĠVhdhWhdj@@@@@;B@ &B@ #0XWWXXXXX@)L@ @qF@@@@ภ"::ghdohhdqA8@B@AA@A=@@ఐ9!i shdp@@@a@ภ"[] A@ A@nB@ :@@C@ >C@ C'@@hdn@@`B@ >?????@3@/@)@@ @@ C@ @4@^O@@@@@ĠŰWmXm @ࠠ!i`mam@@@:0^]]^^^^^@ ,J@#@wP@@@ࠠ"ilnm om @@@K@@@ @@@@@TB@ B@ @డI">=mm@@!a@@@@@6@@5@@4-%greaterequalBA@@@@...b@@V@@@B@ B@ C@ @@@C@ @C@ @C@ 0@HP@K@QD>@?@R@@@@ఐ\!imm@@@@$iendmm@ @@%@@ఐ#posmm @m@@*@@@@s@@C@ D@ 0@డ5remove_expired_ranges(Intervaln$*n$H@@@@@@@@@$unitF@@@@@@@@ee3@@L@@@@@D@ @@@D@ @@D@ @D@ @D@ c@@ఐ!in$In$J@l@@p@@ఐ栐#pos#n$K$n$N@@@ }@@@@@@@C@ D@ @ภư1oPX2oPZ@ʠఐ۠!i;oPV='s(s@@@@IB@ B@ kB@ nB@ VC@ L@ @@C@ K@C@ J@C@ I054455555@6>@9@OV2,@-@QW@@@@ఐJ!iMsNs@@@@$iendTsUs@G @@)@@ఐ}#posasbs@[@@y*@@@@@@C@ YD@ T0@డx5remove_expired_ranges(Intervalxtyt@@@@g@@D@ `@d@@D@ _@@D@ ^@D@ ]@D@ \N@@ఐ!itt@W@@[@@ఐ#postt@@@h@@+@@|@@C@ qD@ jn@డ'is_live(Intervalu u@@@@@@@@@$boolE@@@@@@@@dd@@K@@@@@C@ w@(@@C@ v@@C@ u@C@ t@C@ s@@ఐ⠐!iuu@@@0@@ఐ#posu u#@@@ @@@@@@@C@ D@ @ภv)3v)5@ఐ!i v)1 v)2@ΰ@@T@ఐw6release_expired_activev)6v)L@D@@@w@r@la@C@ @C@ @C@ @@ఐ^"ci)v)M*v)O@<@@@@ఐR#pos6v)P7v)S@0@@N@@ఐ2"ilCv)TDv)V@@@ @@1@@ @@?@@@ఐ"ciTxhpUxhr@g@@@+ci_inactive[xhs\xh~@ఐW6insert_interval_sortedfxhgxh@%@@@U@@E@ @@@E@  @@E@ @E@ @E@ >@@ఐ!ixhxh@G@@K@@ఐƠ"cixhxh@@@Z@+ci_inactivexhxh@ @@B@ B@ @@F@ F@ F@ l@@A@@@@E@ E@ E@ u@\@@@@C@ D@ {@ఐ6release_expired_activeyy@@@@@@ @C@ @C@ @C@ @@ఐ"ciyy@@@0@@ఐ#posyy@ذ@@@@ఐڠ"ilyy@@@;B@ @@3@@3@wWbz@@6@u @@6@@@9B@ G@@{{@@@@ภW { {@V@@@JB@ B@ @@A r@@_B@ ?B@ <0        @ @@@@A*A@mB@ 9B@ 60        @)@@@@AIA@@vq@@ 0        @H@@@@ r@@@ڠAࠠ8release_expired_inactive )} *} @@@@@@@nB@ @@@@JB@ @@@@rB@ @@@eB@  B@S@@@VB@ @@ @@ @B@ |@@"ci X}  Y} @@@-0 V U U V V V V V@8@4@/@*@@ @@ @@ C@ @;@ wX@@@@@#pos q}  r} @@@?B@ 0 q p p q q q q q@(K@@ Y@@@@@Ġ ~  $ ~  &@ࠠ!i ~  " ~  #@@@N0        @(@@ Z@@@ࠠ"il ~  ' ~  )@@@ _@@@@@@@@hB@ B@ @డu">= ~  6 ~  8@,@@@IB@MB@(B@+B@C@ @ 1@@C@@C@@C@0        @6>@9@ [2,@-@ \@@@@ఐJ!i ~  / ~  0@@@@$iend ~  1 ~  5@а @@)@@ఐ}#pos ~  9 ~  <@[@@y*@@@@@@C@D@0@డ 5remove_expired_ranges(Interval  @ F  @ d@@@@@@D@@@@D@@@D@@D@@D@N@@ఐ!i  @ e  @ f@W@@[@@ఐ#pos ( @ g ) @ j@@@h@@+@@@@C@.D@'n@డ #not <@ l u =@ l x@@t@@@Fx@@@E@@D(%boolnotAAv@@@t""u""@@s\@@@@@C@2@@C@1@C@0@@డ i'is_live(Interval i@ l z j@ l @@@@X@@D@?@@@D@>@@D@=@D@<@D@;@@ఐ!i @ l  @ l @@@E@@ఐ##pos @ l  @ l @@@@@ @ l y @ l @@Y@@D@9D@OE@I@@b @@=@@C@QD@8@ภ< A   A  @@ఐ%!i A   A  @@@s@ఐ8release_expired_inactive A   A  @c@@@@@@C@[@C@Z@C@Y@@ఐ}"ci A   A  @[@@@@ఐq#pos A   A  @O@@m@@ఐQ"il A   A  @%@@+@@1@@,@@?@@-@ఐ"ci C   C  @@@<@)ci_active C   C  @gఐ6insert_interval_sorted C   C  @Ͱ@@@@@E@w@ @@E@x  @@E@v@E@u@E@t]@@ఐ!i *C   +C  @f@@j@@ఐ堐"ci 9C   :C  @ð@@y@)ci_active @C   AC  @ @@ Ǡ B@B@@@F@F@F@@@A@@ נ@@E@qE@E@@\@@1@@C@D@@ఐ=8release_expired_inactive fD   gD  7@ @@@=@8@3(@C@@C@@C@@@ఐ%"ci yD  8 zD  :@@@N@@ఐ#pos D  ; D  >@@@@@ఐ"il D  ? D  A@Ͱ@@ZB@@@3@@R@ B   E B K@@U@ @ l r@@U@@@XB@@@ F L P F L Q@@@@ภ F L U F L W@@@@iB@B@#@@A } @@~B@ B@ 0        @)@@@@AIA@B@ B@ 0        @H@@@@AhA@@@@0        @g@@@@ }@@@@ࠠ3allocate_stack_slot J   J  @@@@ Ƞ#intA@@@$B@@@@B@@@@@,B@@@@7B@@@B@@@B@@@/num_stack_slots J   J  @@@*0        @6 J   O E Z@@@@@@!i J   J  @@@*0        @ @@@ )^@@@@@ࠠ"cl #K   $K  @@@ @@@C@0 ' & & ' ' ' ' '@$D@@ @_@@@డ .register_class$Proc <K   =K  @@#Reg!t@@@ !@@@ @@ @ W W@@ B@@@@@C@.@@C@@C@-@@ఐW!i eK   fK  @9@@}<@#reg lK   mK  @V @@2@@D@D@D@J@@; @@OK@@ xK   @@@ࠠ"ss L   L  @@@B@%B@0        @^lf@g@ `@@@డ \%Array#get L   L  A@ !a@@@@'@ w@@@& @@%@@$/%array_safe_getBA @@@@ kd:: ld:r@@ jBA@@9B@@@C@@@@C@@C@@C@<@@ఐԠ/num_stack_slots6 L  @8@@H@@ఐ"cl L   L  @R@@9@@D@D@D@\@@ML@@)]@@ L  N@@డ ]#set\ M   M  #A@!a@@@@-@ @@@,@ $unitF@@@+@@*@@)@@(/%array_safe_setCAb@@@@@ m m@@ C&%A@@BA@@C@@@@C@@I@@C@@C@@C@@C@0 % $ $ % % % % %@@@ >a@@@@ఐ=/num_stack_slotsD 8M  @"F@@b@@ఐ!"cl DM   EM  @@@H@@D@D@D@$@@డ $succ ZM   [M  @@#intA@@@@@@@@~(%succintAA @@@ U44 U44@@ n@@@@@D@@@D@@D@P@@ఐ"ss M  !@Y@@\@@-@@B@E@`@@@@d@@B@ C@f@ఐ!i N % ' N % (@q@@v@#reg N % ) N % ,@  @@ @@@@#loc N % - N % 0@,#loc#Reg!t@@@`(location@@@SAC,,(raw_name(Raw_name!t@@@PA@ @A/asmcomp/reg.mliXX@@J,%stamp@@@Q@A@A Y Y@@!K,#typ(#Cmm2machtype_component@@@R@B#@AZZ5@@/L6,%spill6$boolE@@@TAD/@A%\&\@@;N,$partB&optionJ@@@V@@@UAE@@A6]7]@@LO,&interfS$listIY@@@X@@@WAFP@AF^26G^2M@@\P,&prefercj@@@[@@@@\@@Z@@@YAGf@A\_]_@@rQ,°reeyK@@@]AHp@Af`g`@@|R,*spill_costU@@@^AIz@Apaqa1@@S,'visited_@@@_AJ@Azb]a{b]u@@T@A~[TX[Tn@@Mภ%StackQN % 4RN % 9@8%Stack@@@c@.stack_location@@@b@AAAB@Agg@@@Wภ%LocaljN % :kN % ?@8%Local@@@h@@@@d@A@@D@Ajj@@@Xఐ"ssN % @N % B@X@@[@@4N % C@@0@@D@D@#b@@<@@@@D@D@h@ @@l@@B@(C@&n@ఐ!iO E GO E H@w@@|@#regO E IO E L@  @@ @@@+@%spillO E MO E R@ภ$trueO E V@8@@@N@@@AB@@A@@@@@@@C@2C@6@'@@@.@@@@@@@@D@V@@B@@@AA@B@0@@@@@AA@@@@;0@@@@@@@~@ࠠ6allocate_free_registerU  U  @@@@@@@@@@B@=@ z@@@B@C@@@B@D@@EB@>@@?B@<0@71@2@]@@@@/num_stack_slotsàU  U  "@@@(0  @4U  @@@@@@!iĠ#U  #$U  $@@@.0!  !!!!!@ >@@:c@@@@ఐ!i:V ' 5;V ' 6@E@@Nd@@G0:99:::::@&@@@#regEV ' 7FV ' :@ /@@@@C@R@O@#locQV ' ;RV ' >@@@@@@Q@ఐD!icV ' @dV ' A@)@@n'@#regjV ' BkV ' E@ T @@@@C@X@U3@%spillvV ' FwV ' K@@@@@@W=@@C@@,@@YB@Ġ'UnknownW Q UW Q \@8'Unknown=@@@@AB@Aee@@@U@@  @@@@E@e0@\@@@ĠW Q ^W Q b@@@@@@@E@h @@@@@E@i@@@@ఐ堐3allocate_stack_slotY  Y  @@@@@@C@@@C@@ @@C@ @@C@@C@@C@/@@ఐȠ/num_stack_slotsY  Y  @@@<@@ఐ !iY  Y  @@@I@@/@@B@L@Ġ'UnknownZ  Z  @f@@@@=@@E@u@@Z  Z  @@@@E@v@@@@@E@w@@@@@ࠠ"clŠ\ + 5\ + 7@@@@@@D@~@డ .register_class$Proc%\ + :&\ + M@@@@@@D@@@D@@D@@@ఐ!i<\ + N=\ + O@@@G@#regC\ + PD\ + S@ - @@ @@E@E@E@@@) @@8@@O\ + 1 @@డ!Ġư[] W i\] W A°A@@  @@@D@@@D@@@@D@ @D@@D@0jiijjjjj@1d^@_@e@@@@డ7num_available_registers$Proc%] W @%arrayH#@@@ @@@ @XX"@@C6@@5@@E@E@E@*@@ఐ"cl] W ] W @4@@@@E@E@E@>@@SR@@K?@@^  ^  @@U@@E@E@0@N@@@ @@@డ%raise`  `  @@#exnG@@@!a@@@&%raiseAA @@@ ^BB ^Bg@@ @@@@@@C@B@5B@B@C@@C@/@@ภ)Not_found`  `  @8)Not_found-@@@@@@ # A@A&_none_@@A@@ 'I@@@<@@D@D@N@@E@@&O@ࠠ"rnƠa  a @@@@@@@@@@D@@@@ࠠ"ciǠ)b*b@@@@@@D@0,++,,,,,@!@@Ef@@@డ>b?b#AA@@D@@@D@@@@D@@D@@D@@@ఐK&activeXb@'@@@@E@E@E@1@@ఐ["cllb mb"@@@@@E@E@E@E@@98@@1F@@xb:@@@ࠠ"r0Ƞc'5c'7@@@@@@D@0@\ic@d@g@@@డ_c':c'\AA@@D@@@D@@@@D@@D@@D@@@డJ8first_available_register$Procc'W@64@@@ @@@ @IY##JY#J@@HD,@@++@@E@E@E@A@@ఐƠ"clc'Yc'[@h@@5@@E@E@E@U@@IH@@AV@@c'1J@@@ࠠ'regmaskɠii@@@;@@@D@ @@@D@0@rz@{@h@@@డ%Array$make ii@@@@@1@!a@ )@@@0@@/@@..caml_make_vectBAs@@@@uu@@D@@@@@D@@:>=@@D@ @D@ @D@ 8@@ఐ)"rn?i@i@@@4@@E@E@E@L@@ภQiRi@@@@]E@Y@@J@@dZ@@Xi@@డ*$List$itergkhk&@@@!a@$unitF@@@I@@H@$listI@@@G@@@F@@E@@D@(list.mliEEEo@@,Stdlib__ListS%$@@@@|@@D@D@m#@@D@o@D@n@  @@D@l@@D@k@D@j@D@i0@@@i@@@@@  ঠ#regm=Lm=O@ঠ#locm=Sm=V@Ġ#Regm=Ym=\@8#Regv@@@@a@A@AB@Af f@@@Vࠠ!r m=]m=^@@@@@@A@@@@@)@@H@E@@@m=Rm=_@@@@H@H@M@@@m=Km=`@@aH@R@@డ!<nd~nd@@!a@@<@@@-@@,@@+)%lessthanBA:@@@@9YY:Y@@8S@@@@@F@F@@@@F@@F@@F@0@NH@I@8j@@@@డ!-4ndy5ndz@@@@@@@@@(@@@@@@@'%subintBAs@@@@r`55s`55@@qq@@@@@G@@@@G@?@@G@@G@@G@9@@ఐ!rgndwhndx@C@@5@@H@H@H@M@@ఐ"r0{nd{|nd}@~@@C@@H@H@H@a@@ @@kb@@ఐz"rnndnd@_@@zG@q@@/@@5@@F@G@w@డj ndndAA@@Ϡ@@F@F@@@F@@@@F@@ @@F@@F@@F@@F@@@ఐؠ'regmask"nd@$$@@#@@G@G@G@@@డndnd@@@@@@G@@@@G@@@G@@G@@G@@@ఐ!rndnd@Ѱ@@@@H@H@H@@@ఐ"r0 nd nd@ @@@@H@H@H@@@ @@@@G@G@H@@@ภ%false$nd@8h@@@@B@@A@@@@@|G@@@@@@@F@F@G@@@3ndt@@@@F@F@@@=o>o@@@@ภ"()EoFo@8@@@U@@@@A@@A@@@ @@F@@@AQl'3Ro@@@@@E@}@E@|E@ 0UTTUUUUU@@@@@ఐ>"cigphp@۰@@R@@E@@@)ci_activesptp@װ@@@@E@{E@E@@@ @@X@@C@D@z*@@ࠠ8remove_bound_overlapping r)rA@@@@@@@;D@s@@@ D@@@D@0@@@@@!jঠ#regsM\sM_@ঠ#locsMcsMf@ Ġ#RegsMisMl@ࠠ!r sMmsMn@@@@@@%0@1Hr%w@@@@@@ @@@@G@& @@@sMbsMo@@@@G@(G@'@@@sM[sMp@@QG@@EEsMtsMu@@@@@డ"&&tyty@@/@@@K@5@@@J9@@@I@@H@@G(%sequandBA7@@@@6##7##3@@5]@@@@@E@E@@@E@D@@E@C@E@B@E@A0@R]W@X@6l@@@8H@)@A@=m@@@@డ;=8ty9ty@:@@@$@@F@nF@V@;@@F@U@F@T@F@S&@@డ!RtySty@@@@@@G@d@@@G@cD@@G@b@G@a@G@`A@@ఐ!rltymty@J@@:@@H@pH@rH@qU@@ఐ"r0tyty@@@H@@H@oH@tH@si@@ @@Lj@@ఐ"rntyty@d@@[G@vy@@tyty@@@@F@QF@xG@^@@డuuu@@@@@@F@~@@@F@}@@F@|@F@{@F@z@@డ 5 4 3 6tytyA 2A@@ 2@@G@G@G@@@G@@ 4@@G@ @G@@G@@@ఐ'regmaskty@H!@@ R @@H@H@H@@@డ̠ΰtyty@˰@@@@@H@@@@H@@@H@@H@@H@@@ఐN!rtyty@@@@@I@I@I@@@ఐ"r0-ty.ty@0@@@@I@I@I@@@ @@ @@H@H@I@@@ut@@m@@డO'overlap(IntervalOuPu@@>@@@@C@@@@@@@@@@@>c?c@@IJ@@@Q@@G@@V@@G@@@G@@G@@G@Q@@ఐ֠!j|u}u@X@@m@@H@H@H@e@@ఐq!iuu@V@@r@@E@@@@G@G@H@z@@ @@@@F@PF@G@@@ @@C@@E@F@O@డx    vvA A@@ ݠ@@E@E@@@E@@ @@E@@  @@E@@E@@E@@E@@@ఐ栐'regmask"v@2$@@ #@@F@F@F@@@డvv@@@@@@F@@@@F@@@F@@F@@F@@@ఐ8!rvv@@@@@G@G@G@@@ఐ"r0vv@@@@@G@G@G@@@ @@ #@@F@F@G@@@ภ1v@ @@@yF@@@@@F@@@9ty@@D@?@@@wAw@@q@@ภGwr@@s@@D@ D@ |@@ANrDy@@@@@0LKKLLLLL@@@@@~@డ#$List$iter`x!+ax!4@@@@@S@@D@@D@&@@D@(@D@'@ @@D@%@@D@$@D@#@D@"0srrsssss@@@k@@@@ఐ8remove_bound_overlappingx!5x!M@@@@u@@E@=e@@E@<@E@;@@ఐt"cix!Nx!P@@@@@E@E@B-@+ci_inactivex!Qx!\@ @@6L@@E@4E@FE@C<@@U @@@@C@ID@3B@డ$List$itery^hy^q@a@@@@@@D@jD@Pb@@D@R@D@Q@_ @@D@O\@@D@N@D@M@D@Lh@@ఐ\8remove_bound_overlappingy^ry^@r@@@@@E@g@@E@f@E@e}@@ఐؠ"ciy^y^@u@@@@E@o@l@(ci_fixed y^y^@v@@H@@E@^E@pE@m@@Q @@@@C@sD@]@Aࠠ&assign({){@@@@ @@@%D@u @@@D@v@D@x021122222@@@@@!rB{C{@@@0@??@@@@@@#@@@wE@t@"@]n@@@@డ!=X|Y|@@!a@@@@@'@@&@@%&%equalBA@@@@yy@@Q@@@RD@&D@D@D@D@D@D@@@@D@@D@~@D@}0@AM[@D@o@@@@ఐU!r||@@@i@@ఐ"rn||@o@@.@@@@C@@D@E@$@డw%raise}}@@@@@@D@D@@D@7@@ภ)Not_found}}%@@@@@@E@E@H@@@@I@డ D C B E~&:~&EA AA@@ A@@D@D@D@@@D@@ C@@D@ @D@@D@j@@ఐ 'regmask~&A@W!@@ a @@E@E@E@~@@ఐϠ!r ~&C~&D@@@@@76@@/@ఐ !i@ @@ )@#reg%&@ @@@@@@#loc/0@ ภ#Reg78@pడ!+CD@@ @@@@ @@@ @@@@@@@'%addintBA@@@@[5:5:[5:5h@@p@@@@@F@@@@F@@@F@@F@@F@@@ఐ"r0wx@z@@6@@G@G@G@@@ఐM!r@@@a @@@@@@F@F@G@@@b @@ @@F@F@@@@x@@D@E@@ఐ !i@ w@@ /@#reg@ @@@@@9@%spill@ ภ @@@@ @@F@F@L@!@@@@D@E@R@ఐ"ci!@T@@@@@a@)ci_active"+@Nఐ栐6insert_interval_sorted/E@@@@@@E@@@@E@ @@E@@E@@E@@@ఐ !iFG@ װ@@ @@ఐ"ci H!J@@@ @@F@@ @)ci_active,K-T@@@ @B@B@@@F@ F@F@ @@F@@à H@@E@E@E@@d@@@@@@F~&KGUd@@@ఐ*&assignRjxSj~@ @@@*%@D@@@డ($succcjdj@ @@@ @@E@ @@E@@E@@@ఐ:!rxjyj@@@N@@|j}j@@QF@$@@/@@O@~&7@@O@|@@D@{@@AE A@@\W@@*0@D@@@@{@@ఐm&assign@P@@@ ;@@C@/t@@C@.@C@-[@@@@@ N@@D@6D@8D@7k@@ @@ l@' @@ {@ @@ |@T @@ }@ @@ @O@@ @_@@ @@@  ,@ A@@ B@ @@A] W ]@@  @ p@@  $@@@@ @@E@| @@E@}@E@{ @ @  @@ภ@@@@ B@=B@; @@AV ' ) @@ B@H F@@A  A@ B@B0@ @@@@A  A@@  @@]0@ @@@@ @  @ 蠰@ࠠ9allocate_blocked_register@@@@$!@@@%@@@$B@_@@@@#B@e@@@B@f@@gB@`@@aB@^0  @  5 /@ 0@'b@@@@/num_stack_slots!"@@@(0@4():@@@@@@!i45@@@.021122222@ >@@Kq@@@@@ࠠ"clEF@@@"@@@uC@k0HGGHHHHH@#G@@ar@@@డ.register_class$Proc]^ @!@@@!@@C@o=@@C@n@C@m@@ఐD!it u @'@@n*@#reg{|@e @@A@@D@vD@zD@x8@@) @@<9@@ @@@ࠠ"ci@@@}@@@C@|0@N[U@V@s@@@డm +AA@@C@@@C@@ @@C@@C@@C@~@@ఐ&active&@@@)@@D@D@D@1@@ఐ"cl(*@;@@3@@D@D@D@E@@98@@1F@@:@@ఐ["ci/7/9@[@\@t@@@@C@@0@^k @@@)ci_active/:/C@a@@@@@@@@@Ġ}ISIU@ࠠ%ilastIMIR@@@@@@'@ࠠ"il%IV&IX@@@@@@@@@8@@@ @@@@E@@@E@@@@@@డJL@^xA^z@I@@@I@@C@@H@@C@G@@C@@C@@C@0KJJKKKKK@[?9@:@eu4.@/@gv@@@@డ(!>c^od^p@@!a@@@@@0@@/@@.,%greaterthanBA@@@@%@@T@@@@@D@D@@@@D@@D@@D@0@8@@@@ఐ}%ilast^d^i@D@@@@E@@@$iend^j^n@@@$@@ఐ!i^q^r@c@@+@$iend^s^w@ @@F@G@z&@@hrh@@@@E@-E@F@=0@@< @@ @@D@D@E@,8@#@@@@@@@@C@D@@ఐ%ilast+,@ڰ@@@@F@@@#reg78@!@@@@E@@@#locCD@@@@@@@Ġ#RegST@ @XY@@ @@G@@@@ @@@@G@@@@@ภ "fg@ !@@@D@@C@D@D@@@vw@@@@G@@@@@ภ _@ _@@@@@E@@@@!D@@@A@@&D@ @ఐn!iDJDK@Q@@@#regDLDO@ @@@@@#@#locDPDS@ఐ%ilastDWD\@k@@@@F@@<@#regD]D`@@@@@E@@H@#locDaDd@&@@!@@E@E@E@V@A @@@@C@D@\@ఐ]"ci@@@@@@m@)ci_active@]ఐ6insert_interval_sorted  @ð@@@@@E@@@@E@ @@E@@E@@E@@@ఐ!i  !@Ӱ@@@@ఐ"il - .@ڰ@@4B@(B@B@B@@@F@F@F@@@<@@Ƞ @@E@E@E@@Z@@"@@C@D@@ఐ3allocate_stack_slot W% X8@U@@@@@C@@@C@@O@@C@?@@C@@C@@C@@@ఐX/num_stack_slots u9 vH@>@@|@@ఐj%ilast I N@1@@s@@D@D@D@ @@6 @@}@ @@~@ @@@ @@B@ @@ OS OT@@@@E@@@E@@ @@@ఐ٠3allocate_stack_slot  (@@@@ՠ@@C@@@C@@@@C@@@C@@C@@C@@@ఐ/num_stack_slots ) 8@@@@@ఐ!i 9@@@@@.@@B@"B@@@A /1@@B@j0        @@@@@@H@\@@@@AA@B@d0        @@@@@AA@@@@.0        @@@@@@@٠@ࠠ-walk_interval <@ <M@@@@&#@@@U@@@TB@0@@@@SB@6@@@3B@7@@8B@1@@2B@/0!!!!!!!!@& @!@!)p@@@@/num_stack_slots!#<N!$<]@@@(0!!! ! !!!!!!!!!!@4!*<<!+@@@@@@!i!6<^!7<_@@@.0!4!3!3!4!4!4!4!4@ >@@!Mz@@@@@ࠠ#pos !Gbh!Hbk@@@@@@LC@<0!K!J!J!K!K!K!K!K@$H@@!d{@@@డ "$land!]bw!^b{@@@@@@ @@@ @@@@@@@'%andintBA@@@@;;;;@@x@@@@@C@B@@@C@A7@@C@@@C@?@C@>6@@ఐ`!i!bn!bo@B@@E@&ibegin!bp!bv@t @@>@@D@ND@RD@PS@@డ t$lnot!b}!b@@U@@@Y@@@@@@====@@{@@@@@D@V@@D@U@D@Ty@@A!b!b@@"@@E@]E@_E@^@@!b|!b@@x@@D@MD@aE@\@@R @@@@!bd @@డ %Array$iter!!@@@!a@@@@@@@@@@@@@@@@@~@@@S@@@@@@C@C@i@@C@k@C@j@ @@C@h@@C@g@C@f@C@e0"#"""""#"#"#"#"#@@@"<|@@@@@"ci!"9":@@@%@@ఐ"ci"G"H@3@@"[}@@50"G"F"F"G"G"G"G"G@%@@@(ci_fixed"R"S@ఐF5release_expired_fixed"] "^@@@@D@@F@@!T@@F@@@F@!@@F@@F@@F@&@@ఐ5#pos"|"}"@T@@e@@G@G@G@:@@ఐ]"ci"#"%@K@@~I@(ci_fixed"&".@  @@" !:@@F@F@F@@@G@G@G@_@@O@@!G @@F@F@F@h@n@@@@D@E@n@ఐ"ci"06"08@~@@|@)ci_active"09"0B@ 0ఐ86release_expired_active"0F"0\@@@@ @@F@@4@@F@@"f!V@@F@@@F@ =@@F@@F@@F@@F@@@ఐƠ"ci"0]"0_@@@@@ఐ#pos#0`# 0c@@@b@@G@G@G@@@ఐ預"ci#0d#0f@װ@@ @)ci_active#%0g#&0p@  @@"!@@F@F@F@@@G@G@G@@@a@@! @@F@F@F@@|@@@@D@E@@ఐ"ci#Orx#Prz@@@;@+ci_inactive#Vr{#Wr@ ఐ88release_expired_inactive#ar#br@@@@!L@@E@@@@E@@"!@@E@@@E@ Ǡ@@E@@E@@E@@E@/@@ఐP"ci#r#r@>@@q<@@ఐK#pos#r#r@j@@@@F@F@ F@ P@@ఐs"ci#r#r@a@@_@+ci_inactive#r#r@! @@#6"*@@E@E@E@@@F@F@F@ u@@a@@"7 @@E@E@E@~@|@@@@D@D@@ !@@@"@@@@D@D@@@A##r@@@@@D@y@D@xD@0########@@@@@ఐ!ߠ&active##@ @@@@D@wD@D@@@ @@@@B@!C@v@ఐ$6allocate_free_register$$ @@@@30@@B@(@@B@'@"@@B@&@@B@%@B@$@B@#;@@ఐ/num_stack_slots$&$' @@@+H@@ఐ!i$3!$4"@@@+U@@/@@%V@Ġ)Not_found$?*.$@*7@J@@@@#@@E@>d@@ఐ Y9allocate_blocked_register$N$O@9@@@yv@@C@G@@C@F@!F@@C@E6@@C@D@C@C@C@B@@ఐM/num_stack_slots$l$m@3@@q@@ఐG!i$yO@(P@@p@@.Q@@nB@RB@@@@$W@@p@X@@q@Y@@tB@;6@@AQ\A@B@50$$$$$$$$@P@@@@Ah`A@@@@^0$$$$$$$$@g@@@@e@ed@z@ࠠ2allocate_registers"$$@@@@[@@@cB@`#@@@@@@B@a@@bB@_0$$$$$$$$@@@$y@@@@"+(Ġy"$@w@@$@@0$$$$$$$$@*$$@@@@@"cl$$ $ @@@@@$$@@$@@D@hD@g@డ#$.$/@@@@@@D@n@@@D@m@@D@l@D@k@D@j6@@డ"4num_register_classes$Proc%%-@"@@@@E@zE@|E@{M@@A%0%1@@@@E@yE@~E@}]@@ @@$^@@D@E@xc@@డ#8:%+_c%,A7A@@V#@@E@E@@@E@@8@@E@@ 7@@E@@E@@E@@E@0%>%=%=%>%>%>%>%>@|G@@D@D@D@@%N%O@@%a@@@@ఐ#N&active0%[_i@"*2@@1@@F@F@F@"@@ఐ"cl%o_k%p_m@,@@,/@@ະ"ࡠ(ci_fixed%~tz%t@ภ"ٰ%t%t@"@@@$!$ @@G@@@G@G@N@")ci_active%%@ภ"%%@"@@@$'$&@@G@@@G@G@g@# +ci_inactive%%@ภ# %%@# @@@$-$,@@G@@@G@G@@@@%_r@@@@@@@@D@E@@~@@@C@D@0%%%%%%%%@@@@@ࠠ/num_stack_slots%%%@@@%$@@@D@@@@D@0%%%%%%%%@*@@@డ$%Array$make%% @@@@@@D@@  @@D@@D@@D@@@డ#4num_register_classes$Proc& &%@#@@@@E@E@E@2@@@&"&&#'@@?;@@/@@E<@@&&@@డ$$List$iter&5df&6do@ΰ@@@@$@@D@1D@@@D@@D@@̠ @@D@@@D@@D@@D@0&H&G&G&H&H&H&H&H@xr@s@&a@@@@@@!i&&^py&_pz@@@%@@@ࠠ"ci'&k~&l~@@@$V@@@F@0&n&m&m&n&n&n&n&n@':@@&A@@@డ%F頡&~&~AA@@F@@@F@@@@F@@F@@F@@@ఐ$&active&~@#i@@@@G@G@G@1@@డ$G.register_class$Proc&~&~@w@@@w@@G@@@G@@G@K@@ఐp!i&~&~@W@@Z@#reg&~&~@" @@@@H@H@#H@!h@@) @@7@@G@G@%H@p@@dc@@\q@@&~e@@ఐ"ci&&@@@'B@@$@@@(0&&&&&&&&@@@@(ci_fixed&&@$fఐ#6insert_interval_sorted'' @#ǰ@@@#@@F@6@&@@F@7& @@F@5@F@4@F@3#@@ఐʠ!i'$'%@@@0@@ఐȠ"ci'3'4@D@@%@@G@I@FD@(ci_fixed'?'@@$@@&ƠD@ND@B@@G@CG@JG@GV@@F@@%@@F@0F@MF@A_@h@@@@E@PE@Oe@x@@@@E@RE@Q@@A'cpt'd@@@-@@E@@E@E@T0'g'f'f'g'g'g'g'g@@@@@డ'|3all_fixed_intervals(Interval'|'}@@!@@@#R$s@@@@@@@@@#kb#lb@@$vI@@@@@E@Z$@@E@Y@@E@X@E@WQ@@ภb)'@`@+@@)@@F@cF@g`@@''@@:{@@E@E@iE@ak@@ @@!@@C@lD@R@డ&$List$iter'CE'CN@e@@@@$@@D@D@sf@@D@u@D@t@c @@D@r`@@D@q@D@p@D@ox@@ఐ-walk_interval'CP'C]@A@@@@@F@@@F@@$@@F@!@@F@@F@@F@@@ఐ3/num_stack_slots(C^(Cm@@@;8@@G@@@G@G@G@@@(CO(Cn@@@% @@E@!@@E@@E@@@డ(6-all_intervals(Interval(6Cp(7C@@"G@@@$ %-@@@@@@@@@$%a$&a@@%0H@@@@@E@%>@@E@@@E@@E@@@ภ)(`C@@+@@)@@F@F@@@(hCo(iC@@@@E@E@E@@@ @@"L@@C@D@ @ఐ/num_stack_slots(@1@@@@@@N@@@^@@@7@@B@e@@AA@@@@@@@@@'0'*A@&%]@%%N@##M@!!@r:@@ @ @@ @@(~@@0((((((((@@@@$unitF@@@%arrayH#intA@@@@@@@@@3asmcomp/linscan.mliSS@@'Linscan@@ H************************************************************************(A@@(A@L@ H (BMM(BM@ H OCaml (C(C@ H (D(D3@ H Marcell Fischbach, University of Siegen (E44(E4@ H Benedikt Meurer, University of Siegen (F(F@ H (G(G@ I Copyright 2011 Lehrstuhl für Compilerbau und Softwareanalyse, (H(Hh@ I Universität Siegen. (Iii(Ii@ H (J(J@ H All rights reserved. This file is distributed under the terms of )K)KP@ H the GNU Lesser General Public License version 2.1, with the ) LQQ) LQ@ H special exception on linking described in the file LICENSE. )M)M@ H )N)N7@ H************************************************************************)O88)O8@ " Linear scan register allocation. )!Q)"Q@ # Live intervals per register class )'V)(V@ 2 Insert interval into list sorted by end position )-e).e6@ , Allocate a new stack slot to the interval. )3H Y Y)4H Y @ Find a register for the given interval and assigns this register. The interval is added to active. Raises Not_found if no free registers left. )9Q \ \):S  @ 8 Allocate a stack slot for the already spilled interval )?X f l)@X f @ 9 We need to allocate a register to this interval somehow )E[  )F[  *@ 1 There are no registers available for this class )K_  )L_  @ 1 Create register mask for this class note: if frame pointers are enabled then some registers may have indexes that are off-bounds; we hence protect write accesses below (given that the assign function will not consider such registers) )Qd`j)Rh@ 6 Remove all assigned registers from the register mask )Wj)Xj@ 9 Remove all overlapping registers from the register mask )]q)^q@ ) Assign the first free register (if any) )cz)dz@ ` Assign the free register and insert the current interval into the active list )iQ_)j@ < Last interval in active is the last interval, so spill it. )o{)p{@ T But only if its physical register is admissible for the current interval. )u )vRg@ 6 Use register from last interval for current interval ){ )|C@ = Remove the last interval from active and insert the current )fl)f@ 3 Now get a new stack slot for the spilled register ))@ Either the current interval is last and we have to spill it, or there are no registers at all in the register class (i.e. floating point class on i386). )X^)@ F Release all intervals that have been expired at the current position ))@ ! Allocate free register (if any) ))@ : No free register, need to decide which interval to spill );A);@ / Initialize the stack slots and interval lists ))@ ! Start with empty interval lists )59)5^@= Reset the stack slot counts ))@ 2 Add all fixed intervals (sorted by end position) )+-)+c@ ( Walk all the intervals within the list ))B@@*./ocamlopt"-g)-nostdlib"-I&stdlib"-I1otherlibs/dynlink0-strict-sequence*-principal(-absname"-w>+a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-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(toplevel2-function-sections"-c)"-I'asmcomp) 3/home/barsac/ci/builds/workspace/step-by-step-build 0/$#"! @0eLjI@.0*))*****@)@@$Arch0&s= k&1Ǥ(Asttypes0'$O~7+Backend_var0@3AM_{5Build_path_prefix_map0xөvĠ8CamlinternalFormatBasics0cEXy*Su}Ck)Targetint0aDFscgjg .Type_immediacy0dV^25b)̓ԆSj%Types0lm?ƈ(Warnings0zdͦkUe$@@AK@7@@$.$j@@''@'%%')@nt@@@ @@@@@!!@a )s)v@@P+(@@{@@A