1+1=1: an Optimizing Caml Compiler
Total Page:16
File Type:pdf, Size:1020Kb
1+1=1 : an optimizing Caml compiler Manuel Serrano, Pierre Weis To cite this version: Manuel Serrano, Pierre Weis. 1+1=1 : an optimizing Caml compiler. [Research Report] RR-2301, INRIA. 1994. inria-00074372 HAL Id: inria-00074372 https://hal.inria.fr/inria-00074372 Submitted on 24 May 2006 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. ¢¡¤£¦¥§ ¨¥ © ¥ ¡ ¥§ ¢¡ § ¡ ¡¤ !" ¥§ ¢#© $%¥& ¤©§¥ !" ¥§ ¢#© ' ( ' ) '+*-,&. /10+2§3¦4 3653¦.$7 89,&4 :<;=/>4 0?3¦:A@CB DFE§G%HJIKI¦LNMOQP RSEQTUHJV¢W X Y[Z"\"]_^ `baQVdc¨cdHJegfJhbhji k§lmonplqorrst uwvyxwz¦v{¢|¦}S~Jvy¦z K K u}}pu¨yK w§w¦yvyKyxy6v apport de recherche 1994 ISSN 0249-6399 ¢¡£ ¥¤ §¦©¨ ¨ ! " #$©%'& DFE¤G%HJI I LNMQOP§RSEQTUHJV¢W!( k*),+.-/)1023254 t6$7§08:9<;=8?>A@B2DCE+.8GF:H.;I4.JK=),+.-.)<02320L,FG+M4NLO-QP4NMIFR4'8G+.-/F:9<FG4N8 k*),+S<4NL,>"TA9<>,8:0=J=7)AFG>,L108 lO0K=KE+.),L"UB4')A49,V=4W)19,V=4MYXJt.Z/[=\]6$^.;IFR8G8G4NL'\_/_`a6$Z.[ Kb0c-.4N> d#egfWhjikblh/monp4§K=),4N>A4WMqL'0YMI4Nrs7§0c258b9t+.25KIFR8G4N)jJr§V=F:9,V5r§0>+.C=L<0FGM=4U#CB@50M5+/)AFG-.FGMb0c8b0KIK=)A+B0.9,Vvu 0O>AFG23K=8G4wKIFRKE4N8GFGM=4Cb4NLxr4N4NMDLxr+"4tyzFG>,LAFGM=-Y9<+.23K=FG8G4N)A>jJ4j0.9,V+/M=4§UB4N{.+/LA4U L,+"Vb0c8}|b+|bL,V=4"9<+/25K=FG8:0L,FR+/M K=),+=9<4N>A>j~§V=4'b),>AL9t+.25KIFR8G4N)FR>"0 7§02389t+.25KIFR8G4N)jJ.FGL§FG>§FGM9,Vb0c)A-.4a+|wL,V=4O|)A+/MBL§4NMbU JE0MbU34NM=>,;=)A4W> 9<+/25Kb0cLAFGC=FG8GFGLx@q~§V=43>A49t+.MbU9<+/25K=FG8G4N)YFG>D0M!+/K=LAFG23FRWFRMI-I9AVI4N2549<+.23K=FG8R4W)J?FRLD9<+/M=>AL,FRL,;=LA4W>DLAV=4 Cb0/9,4NMEU J.0MEUY4NMI>A;=),4N>§4<9<FG4NMb9t@q~?§V=4N>,40),47§0c258B FG-.VBLQ[=~§CB@BLA4t9<+=UB4"9t+.25KIFR8G4N)*0MbU 0'=9,V=4N234 9<+/25K=FG8G4N)'xQFG-.8G+B+qW~]>AFGM=-5L,V=FG>"L,49,V=M=+.8G+/-.@BJBr4Yr4N),40cC=8G4L,+5r§),FRL,4YLAVI4Y+.K=L,FG25FGNFGM=-9<+/25K=FG8G4N)FGM +/M=8G@5Lxr+520cMBx2D+.MBLAV=>j~*§V=4YM=4Wr9<+.23K=FG8R4W)§FR>§CE+B+.L,>ALA)<0K=KE4U J|;=8G8G@59<+.23Kb0L,FRCI8R4Or§FGLAVL,V=47§0238 FR-/VBLg[I~"9<+/25K=FG8G4N)Jj0MbU|40cLA;=),4N>QFGMBLA4N),4N>AL,FGM=-YFGMBLA4N)23+zUz;=8G4w+/K=LAFG23FRj0LAFG+/M=>E|+.)*9<;=),)AFG4Ua|;=ME9<LAFG+.MI>~ TxL*K=),+zUz;b9<4N>4<9<FG4NMBLQ9<+=UB4.JB9<+.23Kb0)<0C=8G4*r§FGLAV LAV=4+.MI4K=),+=UB;b9<4U#CB@L,V=4§CE4N>AL r59<+/25K=FG8G4N)A>j~mO;=) M=4Wr9<+.23K=FG8R4W)JBQFG-.8G+B+bJ/FG>|)A4W4N8G@0j{.0FG8:0CI8R4 <N~ 3B ¡A¢Y£Ei.¤*fm7§0258xJ.I9AVI4N254.JjrQJb9t+.25KIFR8:0cLAFG+.MvJW|;IMb9<LAFG+/Mb08 8:0MI-.;b0c-.4N> ¥:¦D§ § ¨©xª« ¨g¬wG©x®x¯<° ±A²'³<´µ.¶·:¸ ¹j¶xº»º³t´½¼¾¿´º»¿ ³c¸ ÀÁºAÂ<Ã=¿Á¶ººx¶N¸ Äa¶x¿ÁÅx¾ ¿´º»¿Á³¸ À}º ´.¼<´ÇWÈ"¼<µ.ÅBÀRÉËʼt´Ì Ì ¸ ¸ ¸ ×,ØÙÂxÚ·Á¶?·Á³<´.ÛÜ<Ý,³<ȧ·ÞG·¿ Ûtß½ÉÜ1àqÝ»· ¸ á<ÝN¸ âj¸ µj´¿Á㸠ɻ³<ºA¸ äI¸ ±,±AÆ Á¯jÍ}ÎÁÏÐxÎGÑ<Í ÐwÒ:Ó<ÔÕ ÔNÖ Õ Ó Õ © ¦y §å x,æA xAæ ¢¡ d >Q¦xw¦zAw x z K}pu yA"å "çvyz x uzjjQ¦xw¦zAwAxw z w èwéëêNìí zîjïcêtíjðpb1§¤£ ¡§ ?ñ Q<å 1ò#ód uAxwNô ¥ v æA A õ=óðjðaêtôQðjö'÷ð'íjí êjêøp¥"vwwxw y õwóðjðaêtôðöY÷jð'íð'ðjì ¡ ¥¤ §¦ " #$©¨'Q% & £¢*¨ p & ¨ ¡ ¡ ¡ ¤¦¥zf¨§ © ¥pm §+/;=>"K=)=P4N>A4WMqL,+.M=>a;=MM=+/;={.40c;o9<+/25K=FG8:0L,4N;=)§7§0258xJBH/;=Fw0P4NL=P4 +.C=L,4NMB;Kb0c)";=M=4 0KB K=),+=9AVI4+/)AFG-.FGMb0c8R4/u<;=M>,FG25K=8G4vKE+.MBL?4NMBLA)A4§UB4N;zy9<+.23K=FG8:0LA4W;=)A> 4<y=FG>AL<0MBLA>jJ9AVE0.9<;=MaK=)A4NME0MBL*4NM9,Vb0),-.4 ;=MI4DKb0),LAFG45UB;©K=)A+=9<4N>,>A;=>5Uz49<+/25K=FG8:0L,FG+.Mv~=4DK=)A4N23FG4N)Y9<+.23K=FG8 0cLA4N;I)"4N>,LY;=Mp9<+.23K=FG8 0cLA4N;I)7§0238 H/;=F=> +z9W9<;=KE4UB4O8 0]Kb0),LAFG4"0j{.0MBL4WM50M=-/8 0cFG>N*4NL0>A>,;=)A4O8:09t+.25KE0LAFGC=FG8GFGL=P4.~N4"UB4N;By=F!4N234 9<+/25K=FG8:0L,4N;=)4N>AL';=M9<+/25K=FG8:0L,4N;=)§=9,V=4N234Y+.K=L,FG25FG>10cMqLjJ.FG8 > +=9N9t;=Kb4DUB4Y8:0 Kb0c)AL,FR4Y0c)A)AF!4N),4Uz;MI+.;B {/40;o9t+.25KIFR8:0cLA4N;=)4NL'0>A>,;=)A4 8! 4<9N0.9tFRL=P4.~b4YK=),4N25FG4N)"9<+/25K=FG8:0L,4N;=)§7§0238 4N>AL'9<4N8G;=FQUB4Y8:0 {.4W)A>AFG+/M [I~ 'UB;D>,@B>AL£4W254"7§0238= FG-.VBLJj4NL8G4§>A49t+.MbU#4N>ALQ8G4"9<+/25K=FG8:0L,4N;=)Q=9,V=4N234FG-.8G+B+b~ ¦s*M3;=LAFG8GFG>10MBL*9<4NLAL,4 L,49,V=M=+.8G+/-.FG4.JjM=+.;I>w0j{.+/M=>vKI; 49<),FR),48G49t+.25KIFR8:0cLA4N;=) +/K=LAFG23FR><0MBL=4NMDUB4N;zy25+/FR>VI+.2D2D4N>=>,4N;=8G4N234NMBL~P 45M=+/;={.40c;!9<+.23K=FG8:0LA4W;=)'4N>ALD0;=L,+.-4NM=44WM 0MI-.8:0FG>#"£$&%!'()(*WNJ*9<+.23K=8+4NLA4N234NMBLY9<+.23Kb0L,FRCI8R4 0j{/498G49<+.23K=FG8:0LA4W;=)wUB48:0§{/4N)A>,FR+/M5[=~§UB4"7§0c258qFG-.VBLJW4NLQK=)=P4N>A4NMBL,4U, FGMBL=P4N),4N>A><0MBLA4N>+.K=L,FR23FG>10L,FG+.M=> KE+.;=)O8G4N>§|+/Mb9<L,FR+/M=>9t;=)A),FÁ"P4N4N>~Tx8vK=),+zUz;=FGLUB;o9t+zUz4UB+.MBLO8+ 4<9W0.9<F:9<FGL=P4a4N>AL'9<+.23Kb0)<0C=8G4Y0j{.49a9<4N8G8G4 UB;9<+=UB4'K=),+=UB;=FGLKE0)8R4W>§254NFG8G8G4N;=)A>9<+.23K=FG8 0cLA4N;I)A> r~- §+/LA)A4'M=+/;={.4j0;9t+.25KIFR8:0cLA4N;=)jJ.FR-/8G+q+EJ.4W>AL UBFG>,Kb+/M=FGC=8G4-/)10cLA;=FGLA4W254NMBL=<1c~ . £Eh½fW¡1l0/1¥©m 7§0c258xJ.=9,V=4W254.JbrQJ=9<+/25K=FG8:0L,FG+.MvJ.?0M=-B0-/4N>Q|»+.Mb9<L,FG+.M=M=4W8R> ÀRÉËʳ<´.¼t´½ÇWÈ"¶ Å:µºbÌ Ì ¸ ¸ ¸ ×<ØjÙ»ÂAÚ.ݻ߿Á¶ºb·Á³t´.ÛÜ<ÝA³tȧ·ÞR· ¿ÁÛ<ßÉxÜ,à.Ý· ¸ áWÝN¸ ⸠µj´¿Á㸠ɳ,º<¸ äB¸ ±A±,± Á¯jÍÁÎ}ÏÐxÎRÑ<Í Ð*Ò ÓtÔÕ ÔNÖ Õ Ó Õ \¡ \£¢\¥¤ ' (-§¦©¨ ¦ ¦ '¨¨ (¦© Z Q&Q § # ¡ §VI47§0238FG-.VBL9<+/25K=FG8G4N)QFG>"0aCq@BL,4<9t+zUz49t+.25KIFR8G4N)j~.§VIFR>Vb0c>20MB@0/UB{.0MBL<0-.4W>u/V=FG-.V58G4N{/4N8 +c|Kb+/)AL<0C=FG8GFGLx@qJB>,208G8 234N25+/)A@D)A4jH.;IFR),4N254WMqL,> LAVI49<+/)A4 FG20-/4'+|QLAV=4D9<+/25K=FG8G4N)§FG>'Lx@qKIF 9W08G8G@5`q[/[ O+qWJv0MEU{.4N),@|0c>ALY9<+=UB4 -.4NM=4W)10L,FG+.Mv~E§V=4N>,4D-.+B+=UKI)A+.KE4N),LAFG4N>Y8G40/ULA+;=><0C=8G47§0c258wFG-.VBL"{/4N)x >,FR+/M=>"+/MKE4N)A>,+.Mb0c8g9t+.25KI;=LA4N),>~bm"M©LAVI4Y+.L,V=4N)"VE0MbU J 0 CB@BLA4<A9<+=UB4D9<+.23K=FG8G4N)0cK=KE40),>L,+5K=),+=UB;b9<4 >,8R+r 4<y=49<;IL10CI8R4K=)A+/-.)10c25>3Mb0c254N8G@©|),+.2 Lxr+pLA+pLxr4NMBLx@!L,FG254N> >A8G+r4N)DLAVb0cM 0>A>,4N2DC=8G@!9<+=UB4 K=),+.-/)1023>1W~§4NMb9t4YLAV=4aM=4N4U#|+/)"0M+.K=L,FG25FGNFGM=-Y9<+.23K=FG8G4N)~ TxL'2D;=>,L§Cb459t8R4j0)'LAVb0cL'LAV=4D+/K=LAFG25FGNFGM=-D9<+/25K=FG8G4N)§r§FG8G8g9t+.25KIFR8G4'2D;b9,V23+.)A4a>A8G+r§8G@5LAVE0M©LAV=4 ),4N-.;=8:0c)9<+/25K=FG8G4N)uB>,+DFGMK=)10/9<LAF:9<4ar4Uz+Dr0cMqLOLAV=4aCb4N>,L"+c|gL,V=4 Lxr+DL,49,V=M=+.8G+/-.FG4N>JILAV=4|0>,L"CB@BLA4< 9<+=UB49<+/25K=FG8G4N)'LA+©UB4N{.4W8R+/K 0cMbU©LA4N>,LDK=)A+/-.)<025>jJv0MEU©LAV=43+.K=L,FR23FGNFGM=-9<+/25K=FG8G4N)'LA+©-.4WLY4<9<FG4NMBL 4<y=49t;=L10cC=8G4N>J*0>'>A+B+/Mo0>'K=),+.-.)<023>"0)A4 )A4j0.UB@L,+5r+.),~ETxML,V=FG>'{qFG4NrYJILAV=4 +.KILAFG25FGNFGM=-D9<+.23K=FG8G4N) S<;I>AL'Kb4W)x|+/)A25>§L,V=4! 3+/K=LAFG+.M+c|LAV=4aCq@BL,4<9t+zUz459<+.23K=FG8R4W)~B§V=FG>"VE0>0cMFG25KE+.),L10MBLFG25K=8GF:9N0L,FG+.Mvu L,V=FG>"9<+.23K=FG8R4W)2D;=>,LCE4O|;=8G8G@59<+.23Kb0L,FGC=8G4§r§FRL,V5L,V=4YCB@BLA4<A9<+=UB49<+/25K=FG8G4N)j~ §VI4N)A4OVb0j{.4§CE4N4NM3>A4N{/4N)10c80cLALA4W25K=L,>QLA+Y+/C=L10cFGM>,;b9,V0Y9<+/25K=FG8G4N)ju½74 rCB@ sg2520cMB;=4N8q7VE0FG8} 8G+.;zy#" `%$AJq0cMbUD7§0238G+.LvCB@ lP4N-/FG>7)AF:UB8GFG-" &$A~.+.L,V5>,Vb0),4"LAVI4">10c254"9<+/25K=FG8:0L,FG+.M'>AL,)10L,4N-.@ u=79<+=UB4 -/4NM=4N)<0LAFG+/MvJq0cMbU LAVI4NFG)QKb4W)x|+/)A20cMb9<4N>0)A4§-/+B+zU~.74Krr0c>*M=+.LUz4N>AFG-.MI4UDL,+YCb4|»;=8G8R@ 9<+.23Kb0L,FRCI8R4 r§FGLAV©7§0258xJBFGL"r§0>'UB4N{/4N8G+.KE4UL,+5K=),+{.4YL,Vb0Lpr 9<+.;I8 UCb4 4<9<FG4NMBLA8G@9<+/25K=FG8G4U3FGMqL,+57'~E§Vq;I>J 74Kr5VE0>*>A+/254*25FGM=+/)vUBF('4N),4NMb9<4W>r§FGLAVaLAV=4§9<+.),4+c|bLAVI47§0c2588:0M=-/;b0-/4:|+/)wFGM=>,L10cMb9<4>ALA),;b9<L,;=)10c8 4H/;b0c8GFRLx@=W~.§V=4'7§0238R+/Lw9<+/25K=FG8G4N)*LA),40L,>L,V=47§0c258b9t+.)A4O8:0M=-/;b0-/4.JC=;=L§UB+B4N>M=+.L|40cLA;=),4"4<yb0/9<LA8G@ L,V=4><0234>,@BMqL<0.9<L,F:9'4<y=LA4NMI>AFG+.M=>Y0c>"LAVI47§0238FR-/VBL§>A@B>AL,4N2)"t=\*$:|+/)"FGM=>,L10ME9<4YLAVI4>,LA)A4j025>|»40j L,;=)A4 FG>§M=+.L"9<+/25K=8G4NL,4N8G@5>,;=K=KE+.)AL,4U=W~ qO>0D9<+/M=>A4jH.;I4NMb9<4.JLAV=4N>,4Lxr+59<+/25K=FG8G4N)A>|x0FG8G4UDL,+DCb4'|»;=8G8R@ 9<+/25K=8GF:0MBL*r§FGLAVDL,V=4Y7§0258E FG-.VBLQ>,@q>,LA4N2©Jq0cMbU M=+/M=4Y9N0M3Cb4'9<+.M=>,F:UB4N)A4jU0c>0cM0c8RL,4N)AME0LAFG{/4"LA+aLAV=4 7§0c258 FG-.VBLCq@BL,4<9t+zUz49<+.23K=FG8G4N)~ np4'K=),4N>A4WMqLaLAV=4DUB4N>,FR-/MoUB49tFR>,FG+.M=>'0MbUL,V=4 254NL,V=+=UB+.8G+.-/@DLAVb0cL0c8R8G+r ;I>L,+5-/4NL0|;=8G8G@59<+.2# Kb0cLAFGC=8G4'+.K=L,FG25FGNFGM=-Y9<+.23K=FG8G4N)*|+/)"7§0258x~ z49<LAFG+/M!\ -.FG{.4N>'0M+{/4N)A{BFG4Nr +c|LAV=4 LA4j9AVIM=+.8G+.-/@0K=K=8GFG4UL,+5-/4NL'LAV=4 M=4Nr 9<+.23K=FG8R4W)~=B49tLAFG+.M t#-.FG{.4N>OLAV=4 +{.4W)108G8v0c)19,V=FGLA49tLA;=),4D+|L,V=49<+/25K=FG8G4N)~=z49<LAFG+/M Z3UB4N>19t)AFGCb4W>YLAV=4aCb0.9,/4WMbUo9t+.25KIFR8G4N)j~ B4j9<LAFG+.MI>Q`bJ,+IJ0MbU 'UB4NL10cFG8qL,V=4§)A4W20FGMbUz4N)*+|bL,V=4"9<+.23K=FG8G4N)~Wnp49<+/Mb9<8G;bUB4§CB@0O>,V=+.),Lg9t+.25KE0)AFG>,+.M r§FGLAV),4N8:0LA4jU5r+.),0cMbU#bMb08G8G@ -.FG{.4'>A+/254OCb4NME9AVI20),B>~ ^ -/.