RC23429 (W0411-125) November 12, 2004 Computer Science IBM Research Report Architecture and Policy for Adaptive Optimization in Virtual Machines Matthew Arnold, Stephen Fink, David Grove, Michael Hind, Peter F. Sweeney IBM Research Division Thomas J. Watson Research Center P.O. Box 704 Yorktown Heights, NY 10598 Research Division Almaden - Austin - Beijing - Haifa - India - T. J. Watson - Tokyo - Zurich LIMITED DISTRIBUTION NOTICE: This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. Ithas been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). Copies may be requested from IBM T. J. Watson Research Center , P. O. Box 218, Yorktown Heights, NY 10598 USA (email: [email protected]). Some reports are available on the internet at http://domino.watson.ibm.com/library/CyberDig.nsf/home. !!"# ! !" ! ! " ! ! " #! $ % & '( ')* + ,( - . '*) + ,( - /. '*0 + ,( 1/ 2 ( ' 3 1 4 5 " 1 ( # $ % !" # $%%$ & & ' () " & ' & * ' ' # ' & ( '+ ' & ' ' , " & & -& . + ' ' * , " /01 * ' ' & + ) ) 2 0 & 3 , * + ), ' 4 , + ' 5 , 3 ' & ) ' ' " ' 6 & ' ) & 7 , + & + * , & 8 , ' ' & + , + , + , & 4&9 & & & :+ ) & Æ & * ' , & 4 & ' +; ' , 4 ' +; < ) ' + ' , & ) + + < & '+; ' , & ' & < ) ' & ' '; , 5 +; 3 ' & + & * & ' , 4 & + & + & ' ) 6 + ) 6 !) + & 3 & & ' 6 + + + ' = 3 & ) & ' 4 ' , '+ 8 $ 6 ' , & 8 > ' + 6 8 ? & & & + 6 8 @ ' ; A0 , & ' ' 8 > 8 ' ' ; 8 B ' ' + + ; A0 & 8 C +; 8 & '% " 9 , & & ) ' 4 , & & ' ' ) 6 , , ' ( 7 ) , & & & , ' " & + ) ' D 9 & ) " 3 , & 3 & = ' + '+ E 4 & ) ' + & ) + 3 & ' & 4 & 6;& 9 ) & = & ; * ' + " + ; = , & ) ) ' & + ) & = & & & ' & ' 4 + & ' + F * ' = ) & & & F + ' & & = ; G ) ) + 4 ) & ' F + & " * 6 + = & + , 4 () & & + & ' & 4 ) ' , & '* 6 8 @ ; A0 ' ( % 4 ' 9 , & '* 6 ' 4 , & ' E < E 4 9 * < E 4 + * &, * + ' ' ) < E 4 ) ' < E 4 ' ' measurement plan controller compilation plan priority queue dynamic feedback runtime measurements priority queue knowledge repository recompilation AOS profile information executing code recompiled code 7 ' , & 4 * ' 4 ;+ & G 7 + ' & 4 & 6 + && + 4 * & 6 + 4 * ' ' # & 6 '& + +; 4 ' + + +&E " + ' 9 * 7 ) + + * + * ' + * # * ' ' * ) = * & ' ' * & 6 4 * & ' * & * + * 8 @ + priority queue Runtime Measurements organizer raw data listener 6 ) & ; A0 " , ' 7 ) , + * 4 * ' * , "' ' +& ' ) & 4 7 & & ' ' ' , & 4 * ;+ & 7 ) ' ) ' & 4 & ' ) + ' + + 4 & & ' ;+ & 7 $ + ' ' 4 + & ' E , + * 9 = * ' +; , + ; + * ) ' * ' 6 & & + & * & 6 " ' ' & + , & 4 ' 9 + ) & 4 + & + * * + ' & 4 & 6 & ' + 4 & * G + & ' + 3 & = + 4 & & 2& * ' +; 8 && & ; + ' & ' & = & ) &G , +; & & + 8 & + ) & + " ' (+ , & ; " & ' + G , * , & ' 4 & = & & & ) '6 & & 4 + H $%%> ' ' , " * ' E & # , & ' & &, ' & ' ) ' & 4 ;+ & ;+ & ) * + " &, , * ; + * ' = + '+; ' & & ' * 8 I, & BG H 7, $%%> & ' -;. 4 ' / 1 + * ' ) ' ' 9 ' 2 I, & B H 7, $%%> & ' ; + ' * J & & ;+ 4 & ' ' + # & ; ' = & & * ' " ;& ' + ) -;. * ' + , ; & 4 ' + * ; ), ) & ' "' + + ) 2& + ' & ' * , 6 + () ) 4 ) & ) & 8 ' ; A0 & / 8 @1 )$ !, - " 8 > & + +; + ; 3 ) ' & # + & ' 7 ) + & IK & ) & # + ' * * ' /IK &1 :+ ' * & ' & 4 + ; + * ) & + +; ' L 7 & /1 / 1 * / 1 ' ' 4 + ), / 1 / 1 5& L / 1 L / 1 L %G ; ' * * # * ' ;+G & ; 4 '+ * ' , ! * ' 4 '+ ) ) & G '+ ) + +; + ! )& -# !#.-, - !, 4 + + , + 8 + +; & , , % M ' M - , ' L . 4 ' 4 ' L % ! * E < / 1 ' ; ' % < /1 ) + ) ' ' ; 7 * / 1 L N¾ /1 ' * , / 1 4 * / 1 L N¾ /1 K , / 1O / 1 # & ' , ) ' ' # * ' ' 4 ' ' ' , ' 4 ' & F ) * 4 ' & , 4 ' ' , F ' , = ' ' + ' = ' ' + 4' ' + ' , ' /1 6 ) ' )( .,-/*0! !#.-, - M L / 1 = +; /1 M Æ 4 ) Æ/1 ' + ) ' Æ/1 ' = ' + 4 , G ' ' + 9 ' 9 ' ) + 4 ' + + " ; ) & 4 , ' ) & ' +; ' & 8 ' , , ' / 1 M ' , & "' , + & ' ) , 8 + + ' ' / 1 4 + ;+ & -3 . ' )) "1,!*-"!# ! ,--/ = ) * Æ& ' , # ' ' & , * * ' +& 6 * = ' " ) * & = & /J1 ' ! J + ' + M + ' J 4 ' ' 4 * ' * + '+ = J + & , & ' 8 + ' + + + , Æ& & ' ' L I& P ' J 7 7 , & ' ' G ' / 1 & ' ' # +& + & * * J )2 /*"3-/ # - # & * ' & ' & & ) * ' & 7 ) & + ; ) + & + " ' * # ; ' & + ) & + ;& & 3 # ' & ; M / 1 ' * / 1 7 ) & / 1 '+ / 1 8 + 6 ' & + ' & 7 ' + #$ * ' 6 J* / 1 ) * ' ) 6 & & ) ' & " & ) 4 ) / 1 * / 1 L / 1 )4 "3! -*0! !!0#5 -"!# ! . --6 - " * ' & , * " $%%$ & ; A0 & * , * = * Q 4 ' + * M ' 6 ' '+ E /1 E A ' * /$1 E "+ ' ' * />1 E A , & ' * 4 / 1 ' + 4 / 1 ' * + 4 / 1 ' , 4 * / 1 * )7 8.,- -/ !9!""! .-, - 4&& + , & + ' ) + & ) ) 5 ; /58A1 +' 6 +& & ' + 58A + & & , & ; 58A + 8' ' ; K = ' & ' /-' .1 8 ' + + & + ; 58A + ' ' J' 3 7; R $%%> ) , ' ' 3 ; A0 ## J' ; 4 & ' = ' & ' * + && " , ' , 4 & ' * ' ' # ' 7; R $%%> +& & & , " 8 ?$ , & , 4 + & + & , ' / 1 4 & ' & ' ' 2 4 ' " 5 , 8& /"581 ; A0 $> J C $%%> 4 + ; ' ; A0 # + ' "58 ' + & ' E , '; # + ' ) & ' ) ( ' + ' ' ' "58 2$ -5! ; A0 /A 0 1 ' ) & ; A0 + + ' + ' ' " # & & + , 6 & & 0 ' , & ; A0 & & &G ' ) ' * & G #! $ 78 # " $ % #9 7 - )::; #! $ ! 4 +4 ):::, 1 #! $ # @ 7 & & & ! + ) ! '+ ! + + ; ' & 4 & ; # ; A0 $> & + ) & & % 4 , & &; & * 4 ) & + ) & ; 8 & ) '& '6 &) 2 +;+ / ;1 4 ; A0 +; + & ' & 8 + ; A0 & & ' & + 4 & & *& ( & ' * & ) ' ' @$ " #$% ; A0 ; ' ' 7 + ) ' + ; , /' ) 1 8 & * ; # * + # + ' ' , & ; + * + , & * 4 & ; ' = ; / ' 1 && ' = ' * & ' , ) / ; 1 4 & + <4 & & & 9 ; 4 ' 4 ' & & & " $%%% 6 6;& <4 2; G 7; $%%$ & + ' & ' , " , I # 8; 2KA8 4 9 , E < & ' ' (+ , ' (& ' & , & 3 4 ' '+ , #A E & & ' * , * & ' ' ; ; & ; " , , ' #A ' =& M % ' , & / ) ) ;1 & ' M % (+ , ; , 7& M % ' ' & ' (+ & < ' M % * & ' 4 ' ' * / 1 ' * ' 8 & & & J @ * & & # ) -) . '& ' ' ' * 6 ; ' + J ' " # ' ' M % , I : % < ( + , , G 88" (+ , & (+ ) G & 88" , D 7; $%%% 4 # ' ' I+I 8 7 ) + 5 M $ , $% + ) ' 4 ! ) < ! # 7 4 &13%=> ! % 8 8? & 8 *@@@A ;: - B : =)= 0)A - B ; CA= A:@ - B ) ;>; AA; Uncompiled Initial compilation/AOS recompilation Compiling if still valid Installed invalidated by classloader or replaced by AOS recompilation invalidated by classloader Obsolete no activations remain on thread stacks Dead collected during next GC phase Freed 7 > M' & ' ; A0 @> ) ) $ # & ' ; A09 & " $%%% 6 ; , ' & + 4 ; + $% & + * ; , 8 ' ; ) ' + (& , ' & ' 7 > + ' & ' = ; A0 ' " 6 "' ' , ' + J , & ' , & ' ! & ' ;+ & K * & ; & & #' & 6 + +& # Controller Thread priority queue priority queue Decay Organizer Dynamic Call Graph Method Sample Data knowledge repository Compilation Thread Adaptive Inlining Organizer Call Edge Samples Hot Methods Organizer Compilers [Base,Opt,...] Method Samples Runtime Measurements executing code 7 ? " 5 , 8& # ; A0 $> ! & ; '& ' ; , & " & ' " ' + & ' , + 5 ; + ; :+ ' ' ) ' " ' + ' ) & ; ; A0 ' ; ' G ; ' ; "& ; + ; ; ' ' # + ' ) 2& :!":-!; 9 7 ? ' 7 ' ' ; A0 , & 4 ' * E , 4 & + 6 D ;+ & " 6 & ; & 6G ' ' 6 + 6 & ' 6 # 4 , & ' + & ;E , '; 4 ) + ' 2( !,!# -:! . --6 - 4 ' , '& ' + * ) /' - .1 ' ' ;& & ' , ' ; , , # ; A0 ' , 4 ' , * '& /- .1 ' 4 & & ) & ; & = ; 9 ; 3 #' & ' & ' 9 #' ; & ; ' = 3 ' ' ++ 4 ' / ; 1 +; : 5, 4 : 5, 3 ' & 8 J 4 ' & ' ' ' / 1 + + * # ; & Æ & /&1 "' 8 J : 5, ' ++ 9 & 6 & 4 ' ' ) "' 6 : 5, ) 3 ' & = & 6 6 & 8 ?> + /' &1 ; ' #' , 6 4 6 , * . ;: 7 D ): # = 6 ' & * & # ; , * , 0 " ' , ; A0 " $%%% + ' ) + & 4 * & , * ' 4 , & - . 4 , - . ' ' ) & & + & & + 4 && , ' ++ ' M * ;& ' ' , "58 & + ' 4 * 4 3 & + '+ # + ) + & + ' = * ;& + ' + ; 2) ,-! "1,!*-"!# ! ,--/ I* '& '6 & + # ; A0 * ' 4 ' * '& * ;& /1 ' & ' ; A0 ' :,+ $%%> 4 & ; ' ) ' & K ) & & * - . ' , 4 & & & , 4 ; 8 ?? " & & + & ; ' 4 ' 3 ' 9 3 = 3 ' ' ++ 4 7 D ):: #! ' / ; 1 +; " # 5, 4 " # 5, 3 & & 4 & ' ' *+ , -+ . + & ' + "' & " # 5, &, & + ; 7 " # 5, * & ' 4 * "& 6 ' 9 + * & / 1 ' 4 & '& & *) 4 ' + & * 8 " # 5, ' & + , ' 8 / , 1 ' ' 4 ' '& * , ) & & ) , ' 4 , ) ' ' ' #' & ' , & 6 ' * 8 ?? "' + ; " # 5, ) 3 ' " ) ' 8'> :S, @ & ; + & + '; 4 ;& 8'> & & * ) ' 4' ' & + + ' & 3 ' " +; + & ' + 5' -. ' 9 K; ' , * '& 4 '& )C 6 ;*C 7 AE ;E 4 7 :)CE #" ' & & ' " $%%% 4 +; ' ' '& ), ' & 4 & ' & & ' + & + ' " ' * ' ' +; 22 ",,!" .,!! - " & ' , & '; , 4' + 6 () ) " + ) + & + 4 * "' , "58 6 #' 6 ; / 1 " ' + E 4 ' '& 6 & ; +; ' ' 6 4 ; & + ; ' & / ) 9 1 ' * & 9 ' " ' ' & & + 4 ' ; ' & + ' + , 4 * ' * & ' ) 4 ' ) & ' 8 ' 8 ?> ? ?B / 6 1 + & ) D " ' ' ) & & "58 * ) ) ' ' 2& & & ' * /& * , * 1 5 ) ' & ' ) & ' & ' " $%%% = ' & ' & & ' * " ' () & ' ) & ) + & $ ! ! " # ! !! " $! ! # % % &% ! ! $! ! # '() % ' ! * # ! "" $! ! # '() % ' ! "* # ! $! ! # '() % ' ! * # ! "" # ! !! " $! ! # % % &% ! ! "" $! ! # '() % ' ! * # ! " "" $! ! # '() % ' ! "* # ! " $! ! # '() % ' ! * # ! " " % & # ! + " " ,% & " , & # " ! !! "" $! ! # % % &% ' ! "" $! ! # '() % ' ! "" "* # ! $! ! # '() % ' ! * # ! -+ ! !. " # " ! !! "" $! ! # % % &% ' ! "" $! ! # '() % ' ! * # ! " $! ! # '() % ' ! * # ! "" % & # ! + " "" ,% & "" , & " " # ! !! " $! ! # % % &% ' ! " " $! ! # '() % ' ! * # ! " 7 @ 8 "58 * ' ' $> ; A0 & & 24 //-/ !03//-/ ) & ; A0 & ' & 0 & ' * & ' ; & 4 ) ' * 3 + ) 7 & , , & * ' 8 ' , ' ) & 3 & * ' 4 & + ) & & ' * ' ; & 6 " && & " ' & & * * ' 4 ' * ' * / 1 + & ' & ) K& '& & ' D * Æ + ' ' ; & , " ' & & ' + ' Æ & , # # + & , & * ' ' , # ' ' / 1 7 @ + ' + ' ! "#$ % ' ' 8I!C ; $> 4 & ' * ; *) ' 4 * ' ; / ' ) 1 ' + & &' ' & 4 + * & ' , ' ' + , /* % 1 7 ) ; $ + ' ' / ' ' ) 1 ' ' ' , 2 ' ' /?%1 /?C B$@C $>?%1 ' :+ ; % ' 4 ' + / % 1 ; 2 % ' & & 6 4 & ' 3 + ' ' + ' ' ) /% @? L $C ?1 4 4 & , & ' = ' ' , *& ; * ' , ' '; , # + & & , ' ; ' 4$ !#"5 4 * ' 4 ## ; & 4 * ; 8I!C ; 8 I' ! ()!!"*** ' & 8 I' ! ( !! * ' 8I!$%%% ) *) ' ) ' *) %+, ; ' TM 4 + ; TM I ) " T $ ) & ' #4 ; -. ) 8 & ;+ & & ' ! < ! ! &13%)::: 4 ## J ' ; ; ? ; ? ; ? ; ? ; ? ; ? ; ? ; ? ! &4F% &! )5 H" & ;:5 FB ;)::: ; ? ; ? ; ? ; ? ; ? ; ? ; ? ; ? ! '-% G 3 ;)5 &4 HB )::::: *@ ? ;:: A) ? ;:: )* ? ;:: *@ ? ;:: *C ? ;:: @A ? ;:: 0> ? ;:: *@ ! C ? C '+; ' K & ! $!! + #2 A $%%? + T8M4 ) U ' ' Æ 8I! & & 8I! # ) '+ + ' ; ' + -.E 7 ) + ' ; ' *) & ' +; ' 7 ; + * -. * -. * ' ) 4 ' 4 ## * * ' ; 7 ) + * ; ' *) ' * + ' 4 ' & = @ + '+ & @ ' ) 8I!$%%% * & + * + @ + @ 4 ; + ) * ' % 7 * @ + G ' @ 4 ' 4 ## * & ' ; 8 ; ) & & & G + * & 4 ### , ' ; ' ' 4 * ' ' ) + ' & / H1 F 4 3 )0* AA) )C> =*= 0;A *A> ! 0@@ < 0C= @;= ! ;A@; ! ;@=0 ;);C ;=@: ;C>) C>@ &13%)::: 777 % ! 5 8% 5 8% 3 IJ 3 3 IJ )) *:> )0* )) )*=@ 0) ;C> A@C 0* ;CAC )0 :@0 )A) )0 )*** >A )*A =A@ >@ );>* A@ C;0 0;C A@ )@)) *; *A: *A= *; ;*)0 C) )A> 0@> C) ;@)= *; *@A 0=: ** )*)A A0 A)A >)) @; ;;@= ;0: ;;A0 ;A@* ;0; A**> =A *A0 *0=A ;A; ;A;= ;;; ;):: ;@*0 ;)A C*CC );> @0: 0*@) *@@ ):;C ;0) );0 C; C:: C=@ C; C*>> 5 8% 3 3 )0* )) A@C 0* )A) )0 =A@ >@ 0;C A@ *A= *; 0@> C) 0=: ** =A) >C IJ ;0=C @*> ));) ;0>) ;=:A AC@ ;:== ;*@) );: + + ) + ' * ' ; A0 / + 7J51 7 & * ' 4& ,,!# - ! ,/< 5 + ' ' ; A0 ) ' 08 & ' & $% $%%? + *) " ) / &D;+ & 2; $%%? 4 ' ' ' ; A0 4 & + #2 A8D%%% 7C% + ) @%%:, ?2 ' & "#T ?>> 7 ) + & & 4 , & ' ; & F ; 4 * ) 8 ? V + ' + '; , 8 B '; , 8 C ' & + '; , " ' + & ; ' + % ' > ' & 4 #0V0## ") 2 ' )*; & C 6 6 ! ;: & C + + ) 4( "--/ ! ,/< 4 && , ' & ' 4 + ; = * -, %%. ' 8I!C ; " 8 @ ; A0 , & & ) & , 4 + ; ' ' /2 5 % 5 5 $1G *) , * ; * ' = / 3 0 1 + ?%%2 0 / + ;+ 1 & + ; A09 ' & & ' 4 + ; ' * ' G & ' /+ * 1 6 & ' & 4 + ' ' + & ; ; 4 + ; ' ' & = /& 1 ' ; ; ' , 4 * + ' , & ' 3 + , 4 + 4 # ' 8 @G + & ) 4) !,!# -:! . --6 - 2' 3 + , + * '& ' , & & 4 6 E / 4 + 6 + * ) & #4 K & & + *) , K ! 3 Speedup 2 JIT model 1 0 All Opt 2 All Opt 1 All Opt 0 Production Opt 2 Production Opt 1 Production Opt 0 Training Opt 2 Training Opt 1 Training Opt 0 3 Speedup 2 JIT model 1 0 All Opt 2 All Opt 1 All Opt 0 Production Opt 2 Production Opt 1 Production Opt 0 Training Opt 2 Training Opt 1 Training Opt 0 7 8& ' + #4 , A ' ; ") " 7 B / 5 % 5 5 $1 * ; 4 ; ' + ' ' #4 & & ' , & , 4 & * + * & , G + ' & 7 , ' ' #4 ; - . - & . 4 * ' , ' & & 4 * ' -4. & ' ' ; & / 8 >1 4 ' -I . & ' ; * -". & ; " # ' ' #4 & & , 2 & /%B<>> 1 & 3 & & $ , & # ' #4 & ' + ' ' , # & #4 * ' + & , # & ) #4 * + ' 6 & ' ' # , ' #4 & # & ' #4 & BP / , %1 ??P / , $1 7 ' & ?CP >%P & , & ' # & & ' #4 & & ' #4 & CP ?P = , * ' & 4 & & ' & G & + 3 & , # & , * & ' & *) ) 4 , ' + , & ) ' & ) 7 B ") " ' ; + 7 , # ' #4 & $ ' $ ; + ) ' C@P $P CCP ' % $ & # + #4 & & >%%P @%$P >>@P ' % $ & # & ' #4 & @ ' ; % ' ; $ 4 ) BP $CP $>>P ' % $ & # + #4 & & ?%P $P $?P ' % $ & 42 !,*"-:! .,-#< !:,3 - 0 , 4 , + + , # 6 E / 7 ) + & 8 $%% " ) + & + ' ) E , , 4 & + 9 + 1 ; 1 ; + ; + = & + , 4 + ' ) ' ; = ' 7 > V @ ") " + ' 7 B ' ' & 5 ' ' + & G ' & %?P / %1 %P / 1 ?P / $1 5 ' & P / %1 >?P / 1 ?P / $1 7 B ' ' & # * ' ' + + P 4 ) & & , + 8, + + , ) ' ' & 4 * 6 ) ) ' 4 + & + ) & G 9 & /1 ' & = & 4 ; & >% ;G 7 > V @ ' ") " 6 & ' IK 8 #! $ ! 3 Speedup 2 ctr mod 1 0 All Opt 2 All Opt 1 All Opt 0 Production Opt 2 Production Opt 1 Production Opt 0 Training Opt 2 Training Opt 1 Training Opt 0 3 Speedup 2 ctr mod 1 0 All Opt 2 All Opt 1 All Opt 0 Production Opt 2 Production Opt 1 Production Opt 0 Training Opt 2 Training Opt 1 Training Opt 0 7 B 8& ' + , A ' ; " ) " 7 C " ! + + + + ;& ' ' 4 & & * & ' ' 7 C ") " ' ; + 7 B , # ' & ' $ ; % @ ' $ ; $> ' $ ; $ 4 ) B$%P $%P ?%?P ' % $ & # + & & $P %P %?P ' % $ & # & ' & ' ; % ? ' ; ' ; $ 4 ) CP P $>P ' % $ & # + #4 & & ?P %@P ?P ' % $ & 44 3, -.,! . --6 - ,!:!, " ' ' , & ' , ' " 8 ? '+ * & , + & 4 6 E / = , , & , & , 7 C , & & , 4 , & + % & ' & 7 & ' , %G ' %>P & 7 , &G ' + P ' ' ' & # & & , $ 5 , $ ' % & $?P ?%P & :+ # & , ' + & + , ' + , $ ' & 4 & &9 ' 7 $% ") " ' ; + 7 C , # ' ' $ Speedup 1.0 mod0 mod1 mod2 0.5 0.0 All Production Training Speedup 1.0 mod0 mod1 mod2 0.5 0.0 All Production Training 7 C 8& ' + , A ' ; ") " 7 $% + ' P >P $P $P P ??P ' , % $ & # & ' ' + ' ?P @>P $P $BP P @P ' % $ & # Speedup 1.0 AI edge both 0.5 0.0 All Production Training Speedup 1.0 AI edge both 0.5 0.0 All Production Training 7 8& ' + '; , , A ' ; ") " 7 $ 47 !!0#5*-"!# ! . --6 - 4 '; , # 6 E / " 8 ?? ? ; A0 + & ' '; , E , & (+ * 7 ' ' , 4 , , + 7J5 / 1 4 + '; , ' & %@P 4 ' & * :+ '; , ) * '; , ' " '; , ' ' + 7 ' & 4 ; * ' '; , " ' /CP1 , /%P1 :+ && + + , ' & BP 7 $ ") " ' ; + 7 , # ' ' '; , + ' ?P >P # & ' ' '; , + ' % $%%P 4= .,!! - :!"! " 8 > & & + ' ' * 4 & ) + 7 % , ' & ' & 4 0### ") " 7 % ' 7 ; + ' * + '; , / 1 = ) ' E "58 4 & , * ; ' ; ' + 4 & 2 ; && + ' ( ' + + 4 & '& 0 '& ' ' ' & 4 & ) ' /; ' + * @ ' ) 1 4 + , & G "58 %?$P %>P ' & db-medium xalan javac-medium jess-medium jack-medium kawa-medium mtrt-medium ipsixql-medium pseudojbb-medium compress-medium xerces-medium mpegaudio-medium daikon-medium soot-medium kawa-large jack-large xerces-large javac-large jess-large saber-medium mtrt-large db-large ipsixql-large saber-large soot-large pseudojbb-large compress-large daikon-large mpegaudio-large Arith. Mean 0 20 40 60 Percent Execution Time 80 100 ipsixql SPECjbb2000 jack javac jess mtrt db compress mpegaudio Arith. Mean 0 20 Application 40 60 Percent Execution Time 80 100 GC Recompilation AOS 7 % 2;+ ' ; A0 & & # & C@P ' & & ?P & " >$CP ?P ' & & # & ' "58 %@P '* 6 ' + 8 $ 4> !#.-, - # -:- < 7& + + 6 & ' & 7 + ' & & & ) 4 ' ' , , & ' & 7 & + %V>>%$P ' + ' B@P 7 & & + @?>V?BP ' + ' $>@CP 4 +;+ ' ' H B%G & ; 4 + * ' 7 ' ) , 7 , + ;+ ' * , ' # & & /@%>P1 ' , % # & $B?P ' , $ 7 $ & + 8I!C ; 0 4 + 3 ' ; 4 ; / "*# ""1 1 4 ) ; 4 * * + "#$ * 4 ) ; ; ' 6 , 4 ' ' 4 ' + , + + 4 ; ; + ) + + ; * ) 4 7 $ , * , ' 4 * ' + ' 4 * * ' & ' ; 7 ; ; + ' & ' & ) & ' ' ; :+ ' ; + ) ' & ) 4 * ; + 4 4 db-medium xalan javac-medium jess-medium jack-medium kawa-medium mtrt-medium ipsixql-medium pseudojbb-medium compress-medium xerces-medium mpegaudio-medium daikon-medium soot-medium kawa-large jack-large xerces-large javac-large jess-large saber-medium mtrt-large db-large ipsixql-large saber-large soot-large pseudojbb-large compress-large daikon-large mpegaudio-large Arith. Mean 0 20 40 60 80 100 0 Percent of All Executed Methods Baseline 20 40 60 80 100 Percent of Optimized Methods Optimizing Opt Level 0 Opt Level 1 Opt Level 2 8 &8 ipsixql SPECjbb2000 jack javac jess mtrt db compress mpegaudio Arith. Mean 0 20 40 60 80 Percent of All Executed Methods Baseline Optimizing 100 0 20 40 60 80 100 Percent of Optimized Methods Opt Level 0 Opt Level 1 Opt Level 2 7 4 ' + ' + + & + & + , 4 ;+ + ;+ ' * , ' + + , 30 Level 2 Number of Methods Recompiled Level 1 Level 0 20 10 0 compress jess db javac mpegaudio mtrt 30 jack Level 2 Number of Methods Recompiled Level 1 Level 0 20 10 0 jack mtrt mpegaudio javac db jess compress 30 Level 2 Number of Methods Recompiled Level 1 Level 0 20 10 0 javac ! "#$ % & compress jess db mpegaudio mtrt jack 7 $ A ' 8I!C ; 0 4 * & + + 0 3 & ' ; 4 ; & ' ' G ; + 0 ) 4 ' & " $%%% 7 % 2 ; A0 & & # + ' + 7$ .,!! - ! -, !" " , & & ' - . & ' 4 +& + & & ' * +& B 0 , = + & & + 5& & ' ' ' ' & ' ' # ' & ' - . ' # & Æ ' 7 ) ' ;& , '& + * /* - .1 4 & G + & 9 I& , + ' + ) 4 + + Æ ' # & ' ) & G + & :+ * - . 6 , & /+ ' ' 1 # '& '6 & ) ' ) & P " $%%% & ' " + * 3 + , & D = & + + 3 = 3 ' , + , ; " ! ! ! + ++ / + 31 = + + / 1 3 , ' $% , & %%?P :,+ ) '; ; A0 :,+ $%%> # & ' & + & ' & 2& *) & ' " # 5, & ' ' @% 4 6 & * 6 6 & 4 ; A0 & & +& " $%%% 2& & + + ) '; + * ; 4 & 3 * & # " $%%% + & / 1 ' >P >%P & # ; A0 $>> + ' %?$P %>P & 8 + ' + ' & ' * ' ' 9 & B$ 1 " , & & ' + * ( ' & + , # & + ' ' ' ' ' % 7 '6 & ) & + , ' , /5% 51 6 , , = & / & &1 + ' ' ' + + & ) = & ; + '& + ' & ' B> 1 ) 231 " 8 @ 9 & & ' ) * ' , / - JU".1 = & ' ' ) ' , 4 ' ; A09 ' & ' ' & :+ ' ' ; A0 ' ' + ' & ; 'L4 #! $ " ' U & ' 3 & ' 4' & & & ' 4 + JU" + + ; A0 B? 4 # & ; A0 & ; 4 + Æ ' ' 6 / ' & 1 5 & & ' + + Æ ' & + + # ' ' # / + & ) )1 * ) & + ' , 4 *) + & ; A0 " + -. & , Æ & * 4 3 & - . + ' & , ' D 6 7 ) & * & & , + ; & ' #">$ #' + ' & ' D 6 + @ ) #">$ / 3 ' & 1 ? & ' " & & & ' ; ' 4 +& + & * ' ' , :+ * & #' '6 & ; & & + & ' * ' " + ;+ , + & ) D 6 + & + & ; 4 + ' & 7& ."!!-:! !"9"#! :,3 - - "- -#, " ; A0 & & & ' = ) ; + ; ' ' + '6 " + +& ;+ ' + & = + 6 ' ' !& + ' & + + $ & G & ' ' * & 7 ) ' & " $%%% + & "' + ' ; ' + ' & &G ' + *) ' & + 4 & ) & ' + ; & 4 ' & ' * & 7( .-/ ;- *! !"-- 4 , & /"581 ' + +& " 8 @$ "58 * ' & # ' ' & & ' & 9 4' ' 3 ' '6& & 3 & ; + 8 & 3 ' :+ , & 3 '6& E ' ) + , ' ) ' ' ) 4 ; ; ' * #' ) ' Æ 4 + + * 3 & + F* J 6 & "589 & ) J+ ' + 3 ' Æ , ' + , 3 ' # & ' - . "' ) ' *) ' * , ' 9 , ' & ' 4 , & , * ; *) + , *) ' , 4 ' * ' + ' + 3 ' U & ' 7 ) & # ' ' ) K 7) -33 !#.-, - 5 & 8 & *) & & , + ' , & + * # ' & 6 , ) ' + 8 ' ) ' ' / 1 9 ) 4 , * ! & 8' :S, K * ' , ' ' 5' + + & ; 8 @> 5 , & + , + & Q 8 & & ' & + ' ) Q 4 /8 ?$1 /8 @@1 & # + & ' & = & ' ) + ;& , #' & + & ; ' ) ' + 72 !,-/ .-, - 8.!# ! !!1 = & + * 3 * " + & ' ) '+ & & + + , = ) & ' & 4 & ' * ' 4 ' * ' , F ' & 4 ' ' , ) ' , ' ' ) ' F # & ' + ' ) :+ Æ = ' ' 9 ) 8 ' G + '& ' * + ) = + & * ' 5 ' * J ? +& 3 ' ' 3 # 6 + , 6 & "J"I4 & 0 ! $%% + ' = , ' ' ' = 4 ' ' , ) ' 4 ' +; , = ' " $%%@ ' & ' * "&; $%%> ' + ' ' , & ' & 6 =$ ?3! -, . -:! . --6 - < ! 8 ;& & & ' , & 4 ( " 7 & : B? II 8 ; J 83 C? 8' K G :S, K ? & I,& $%%G 8 $%%%G 8 $%%G " $%%%G " $%%$G ; $%%%G ; $%%>G "4 $%%>G 2!" $%%> :9 " 7 /"71 & : B? * ) ' , : B? & ' ' , + , + , * & 4 "7 ' & ' , 4 & + & & , ; ; - . ' 4 + ; + ' 6 & "' : & + ' , 4 , ' 4 ' & , 4 ) + "79 ! 8 $ # 6 , ' #4& + & , 4 II 8 ; J 83 C? + * 4 & & ' & '( & , & 4 & & ) ) E , , 4 ) & + ) 4 8 ; & + ' , = + & + 86 & & ) ' ' + / 2 $%%%1 4 8' K G :S, K ? 6 & ; & , + * + & 4 ' * I,& $%%G 8 $%%%G 8 $%%G ; $%%%G "4 $%%>G 2!" $%%> 4 ' M A ' ' ' A ) , H 7, $%%> =& . --6 - " !/-! 4 II 8 ; J 83 C? + * & ' 4 & '+ &E * 4 & 4 8' & K & "4 CG H CG W & 6 ) , ' & & + & ) + 6; ) / , 1 ) * ' & , 8 0 8'> :S, K ? : 8 0 I,& $%% #2 JH ' 4& > 8 $%%%G 8 $%% 5AIDKJ5 & ; $%%% ; A0D & " $%%%G " $%%$G ; A0 A; 0 2!" $%%> 0 ; $%%? 4 #2 JH ' 4& : 8 0 ' ) 8'> ; A0 5AI A; , ' ) 4+ ' & * & & ' ' , 0 ' & ' ; # & & 2 ) & , ), ' 4+ ' + , E :S, K ?G I,& $%%G ; $%%%G ; $%%> 2!" $%%>G " $%%% 4 * + 4 & 3 * 2 & , 4 & & / 1 ' ; 5' ) ; + + * & + :+ ) ; + & 8 & 8 $%% & & ' ' ' '& " 8 @ ; 4 * '+ ' 6 ' * 2 * ; 6 ' , & :S, K G ; $%%%G 8 $%%%G I,& $%%G 8 $%% & *) & + / 1 ) *) ' ' ; 6 4 & & / * 1 ' + , + ' , 4 + + , ; ' & 5 6 6 & , ' & I, & B ' , 4 -. & + + + F / 1 4& & + * & 4& -#4&. , + ; & 4 & ' ; + ; * H 7, $%%> ' & & ' 5 4& ' + + ' * H 7, ' ) & ' ; 5 & ' , " $%%% 6 '& , 9 ' ' *) #4 & & * ' A; $%%% H3 0 ) ' & J ' " 3 + + K & ' ' ' #4 ' + #4 " $%%% & & ' ' ; A0 * JU" JU" ' H , $%% '+; ' & & F & ' & # +; H , $%%> + + F * ' + * ' 8& $%%? F * , 8 $%%% 5, & + ' & K ) + * ' 0 = 6 ) ' & ; ' ' ) ' ; + 0 #' ) & =( !!0#5*-"!# ! ,--/ 4 8' & , & & 8' > :S, K 6 + + 0 + + * ' & ' 4 8' ' ' + & 4 + * /B) 1 ' & '; + * * & , /8'1 & 4 8'> , & & +; ; * + 4 : 8 0 I,& $%% 8'> 6 ' # ' + & & * & J ? # 4 & & # +; 8' + & ' 6 '& 3 , 4 & ' 3 + ' & 4 3 ' , Æ = J& B ' & 8 8 " $%%%G 8 $%%$G " $%%$G "4 $%%>G ; $%%% '& * ' ' & ' ' ) & %BP * " $%%$ ; A0 " $%%% + + + & * ; + # ' ; 8 $%%$ ) * & ) ' & & ' 4& ' & & * ' & 4 8 #4 "4 $%%> '6& , :, + $%%> ) & ' ; =) !" "!, ! ;"5 J& & , / J& 2 $%%%1 / '1 /* , 1 + 0 , & + ' & && & & ) ' * 4 '& * & :;+& : BG X BG " B + * ' ' ' ) " ' , ) " G G G M M CG US G G I B 2 & & , + 4 ' 6 & & '& ' , * , ' " $%%@ > % = & '+; ' , 4 ' ) & , 7 ) + ; A0 + & + ) & + & ' + + ' 4 ' 3 + +; , & " & & & :+ ) & Æ & # & 0 & & ' ' : B?E J , & ' + ' , & ' ' 3 4' ' & ' : B? $ = & '+; & ' * ' , & 4 ' + ; + & U + '+; ' ' ) ' ! )::*  ( 4 ; I6J ;=M*; " # $" % ;==> 6 D # ! ! "" C IJ )>:M)=: 1 1B'7=> ! " & $ %% '" ( ) ) ' # #(( & ' *& !! " + (! ) , )::: #9 # "$ ; I6J );;M)*> ! %% # *& ) ' & ;=== 7 #9 # ! ! "% ;: I-J *;0M*)0 1 --1&B4== ! % # )-& " #& ! # ( ,!& , , + ;==@ % ( " N &' 0 ILJ *C@M*=: '" ( ) $ )::: 4 #9 #( 7 " () *+),- - .*--,"/ '" ( ) $ ' )::: 4 #9 # ! ! "' ;: I-J 0@MAC 1 )::: 4% &721B4L % - - 1 & B 4 I--1&B4::J ! '" ( ) $ ' )::C 4 0 111 $" ) & 1 2 - 4 ) )::: 4 7 &" () 0 , 0=MA@ ) )::) - ! # ! ! " ;; ILJ ;;;M;)= 1 )::) 4% &721B4L % - - 1 & B 4 I--1&B4:)J ! $! ! +&&! ! * ;==A 6 D ! ! "& C IJ ;0=M;C= 1 1B'7=A %%" )::* 4 "' ) =@M;;* ! + )::: '( ! ! "' C IJ ;M;) 1 1B'7:: + )::* 834 #$!( # (?? %" & $ %. . )::0 ( 7 12 3 0 455% 0 0 )CM*A " '" ( ) " (! ) , ;=== #9 # 7 &$$$ 0 ;)=M ;0; ! /& ;==; ! 7 0 +6, ;M;C " +& * #! % )::* ( 4 K ; CM;> " # % )::: 1 #O'-( # ! ! "' C IJ ;*M)A 1 1B'7:: % 8 (??? !?? ! *0 ' ;==A 4 % 7 0 2 0 4" !, 0 ;0CM;CA ' ! . ,& * 1%" ' . ;==; 3Æ &" 0 I-J 0C;M0=: ! '! (???! ! ;==0 7 * )@*M)>) ( ! ;==C - 7 $ 1 0 +6, @@M;:; 2! &! 3 ;=== 7 7$$ 8 ()9 0 + 8 - ;>:M;=0 2! &! 3 ;=== 7 7 &" 1 0 +6, )C>M)@> " !% # $ %22 ;=>0 3Æ &! >: 7 0 2 0 1 0 )=@M*:) + 4 )::) & 3%4**0 %P B & (?????3**0 '" ( ) )::) #! $ L --1&B4:) 4 ?!??!?? '" . . " )::: O 7 .4555/ '" 5 ' )::* ' ! 7 7333 % & )0;M)C) !& ;==A : 4 " $! %" +&&! ! ;=== 4 ! ! "% C IJ )=*M*:0 1 1B'7== %(!" * .! . ! )::0 # 7 ;< " 8 2 .875%/ )! ;=@0 4 1 ' % O )- . ( )::* 4 7 7333 % & )C*M)A0 )0- / ;==C 4 &( $ 1 ' & O )0- / /& ;==0 4 &3B6 ( $ ! ! 4$ ;: I-J ))=M)0* )0- / /& ;==A $ &= 0 I#J *CCM0:: )" )& ;==@ '7274B 6FQ*)( % - $ ; *M;) #! $ #! $ I$J (???!??! ! 5 # & (????! . 3 !! )::* 111 "> ; I#J 0;MC: .! '- )::* % ( 4 4' 0 I#J C::MC0> . + ;=@: 4 6-$$4L $% *)@A . ;==> 3Æ # # 7 0 ? #B 2 3 ):CM);) .- )::* % D 7 @ 1 *+),- 2 A=M@> .- )::; O ! ! "> C IJ ;CAM;A@ 1 1B'7:; # # $ ;==> ' 6 "5 * I&J ;MC 4 )* $ ! $ ;=== 1B'7== ! ! "% 3Æ C IJ )>;M)=) 1 + & % B $ $%- %" %" )::; # H 7 ;< 8 2 .875&/ ;M;) $! . )! ;==: 1 ! ! 4' A I#J ;AM)@ 1 1B'7=: $- $ . ;==@ ' R S R N 7 0 0 7$ 4% !, 0 9 * &'A& &$$ 4% 3 4% 1 L T! LT O&4 ;):M;*; $- $ . ;==@ ' U V S U VN 7 0 2 0 4% !, 0 ;):M;*; $ +& .!" ' ;==@ ( 4 K ! ! "4 C IJ ;:=M ;); 1 1B'7=@ $ " ;=== B 4& C I&J >=CM=;* "! "! * # . (! )::: 4 # 7 < B 0 .B,>/ 6 *>@M*=> %& + (! . (! ) ! .! .( # )::0 &( & 7 0@ )C)M)A) )::0 # # D ( N ! ! "$ > I4J A;M@; " "22 )::: G!( < # ! ! "' ;: I-J AAM>) 1 )::: 4% &721B4L % - - 1 & B 4 I--1&B4::J & # 8 4 6! (????P $2% +( &13%)::: # 8 8 ! (???)::: $2% +( &13%=> 8 ! (???=> & 3&! "% ! . 4!-" . .! ) *" )::: - 78 # # % # "$ ; I6J ;@CM;=* & ! . .! ) *" )::; 4 ! # ! ! "> ;; ILJ ;>:M;=C 1 )::; 4% &721B4L % - - 1 & B 4 I--1&B4:;J & ! *" )::) 4 # 7 ;< 8 2 , .8754/ =;M;:0 !! +& )::; H 4'41 ! ! "> @ I#J =*M;:) , 3 (& . ;==@ 6 D 7 % I1 6J , ;=== ' & 7 # F# F&B (?? ? F) # 1 $ (?? ? )? & $" # # $" & . +%& . + ;=== B( 4 # # Æ 7 0 ? ;)>M;*> 1& 6 ,& 1 * ;==@ & 7 &> - & $ *;ICJ ;CM)A 4 ) * + 8 Normalized Running Time 0.56 0.54 0.52 0.50 10000 100000 1000000 Counter Threshold 7 > 4 ' & , % 4 ) * ) 4 ' @%%% + + 4 8 @ Normalized Running Time 0.55 0.50 0.45 10000 100000 1000000 Counter Threshold 7 ? 4 ' & , 4 ) * ) 4 ' %%%% + + 4 8 @ Normalized Running Time 0.60 0.55 100000 1000000 Counter Threshold 7 @ 4 ' & , $ 4 ) * ) 4 ' >@%%%% + + 4 8 @ 3 JIT1 mod1 2 Speedup daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium xerces.medium compress-medium saber-medium pseudojbb-medium ipsixql-medium mtrt-medium kawa-medium jack-medium jess-medium javac-medium xalan daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium jack-large javac-large jess-large mtrt-large db-large compress-large mpegaudio-large db-medium xalan javac-medium jess-medium jack-medium kawa-medium mtrt-medium ipsixql-medium pseudojbb-medium saber-medium compress-medium xerces.medium mpegaudio-medium 5 mpegaudio-medium 5 db-medium mpegaudio-large compress-large db-large mtrt-large jess-large javac-large jack-large 3 JIT2 mod2 2 Speedup 3 JIT0 mod0 2 Speedup 5 4 1 0 4 1 0 4 1 0 daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium jack-large javac-large jess-large mtrt-large db-large compress-large mpegaudio-large db-medium xalan javac-medium jess-medium jack-medium kawa-medium mtrt-medium ipsixql-medium pseudojbb-medium saber-medium compress-medium xerces.medium mpegaudio-medium 7 J ' + #4 , 4 ; ' " & ' + 7 JIT1 mod1 4 Speedup ipsixql-steady SPECjbb2000 mpegaudio-steady compress-steady db-steady mtrt-steady jess-steady javac-steady jack-steady ipsixql-steady SPECjbb2000 mpegaudio-steady compress-steady db-steady mtrt-steady jess-steady javac-steady jack-steady JIT2 mod2 4 Speedup JIT0 mod0 4 Speedup 6 2 0 6 2 0 6 2 0 ipsixql-steady SPECjbb2000 mpegaudio-steady compress-steady db-steady mtrt-steady jess-steady javac-steady jack-steady 7 B J & ' + #4 , " & ' + 7 3 ctr1 model1 2 Speedup daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium xerces.medium compress-medium saber-medium pseudojbb-medium ipsixql-medium mtrt-medium kawa-medium jack-medium jess-medium javac-medium xalan daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium jack-large javac-large jess-large mtrt-large db-large compress-large mpegaudio-large db-medium xalan javac-medium jess-medium jack-medium kawa-medium mtrt-medium ipsixql-medium pseudojbb-medium saber-medium compress-medium xerces.medium mpegaudio-medium 5 mpegaudio-medium 5 db-medium mpegaudio-large compress-large db-large mtrt-large jess-large javac-large jack-large 3 ctr2 model2 2 Speedup 3 ctr0 model0 2 Speedup 5 4 1 0 4 1 0 4 1 0 daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium jack-large javac-large jess-large mtrt-large db-large compress-large mpegaudio-large db-medium xalan javac-medium jess-medium jack-medium kawa-medium mtrt-medium ipsixql-medium pseudojbb-medium saber-medium compress-medium xerces.medium mpegaudio-medium 7 C J ' + , " & ' + 7 B ctr1 model1 4 Speedup ipsixql-steady SPECjbb2000 mpegaudio-steady compress-steady db-steady mtrt-steady jess-steady javac-steady jack-steady ipsixql-steady SPECjbb2000 mpegaudio-steady compress-steady db-steady mtrt-steady jess-steady javac-steady jack-steady ctr2 model2 4 Speedup ctr0 model0 4 Speedup 6 2 0 6 2 0 6 2 0 ipsixql-steady SPECjbb2000 mpegaudio-steady compress-steady db-steady mtrt-steady jess-steady javac-steady jack-steady 7 J & ' + , " & ' + 7 B 1 daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium mpegaudio-medium xerces.medium compress-medium saber-medium pseudojbb-medium ipsixql-medium mtrt-medium kawa-medium jack-medium jess-medium javac-medium xalan db-medium mpegaudio-large compress-large db-large mtrt-large jess-large javac-large jack-large mod0 mod1 mod2 Speedup mod0 mod1 mod2 Speedup 1 2 0 2 0 ipsixql-steady SPECjbb2000 jack-steady javac-steady jess-steady mtrt-steady db-steady compress-steady mpegaudio-steady 7 $% J ' + , " & ' + 7 C 0.5 daikon-large pseudojbb-large soot-large ipsixql-large saber-large xerces.large kawa-large soot-medium daikon-medium mpegaudio-medium xerces.medium compress-medium saber-medium pseudojbb-medium ipsixql-medium mtrt-medium kawa-medium jack-medium jess-medium javac-medium xalan db-medium mpegaudio-large compress-large db-large mtrt-large jess-large javac-large jack-large AI edge both Speedup AI edge both 0.5 Speedup ! 1.0 0.0 1.0 0.0 ipsixql-steady SPECjbb2000 jack-steady javac-steady jess-steady mtrt-steady db-steady compress-steady mpegaudio-steady 7 $ J ' + '; , , " & ' + 7 @ 4 ) + ) " $ 4 #0 A+ ' 4 4 4 * & ; ' % 4 ' 7 ) * ' !2 ' + $BP ' 8 ! : ; ) : ; ) :@*I:)@J :@AI:0;J :>>I:C;J ;*)I;@)J **AI:;=J 0)AI:)>J AC=I::=J );:I:);J *@AI:*)J )A*I:0)J );*I:*=J ;C=>I:;CJ *:=@I:;:J ;0>=;I::0J ))@I:*AJ )=;I:A;J )C=I:;AJ )A>I:*;J ;:*)I:):J ;@=>I:0>J 0A*CI::>J )**I::>J ;@:I:)CJ ;0>I:*;J );>I:*;J A:>I:;=J =)@I:0*J ))=)I::@J ! )C*I:);J *;)I:*>J **AI:*:J )=0I:;*J @)=I:;*J ;CC)I:0=J *:>:I:;@J ! *C=I;@CAJ 0)*I;)*=J 0)>I;;=0J *>0I0*>J ;)>=I)ACJ );)=I)*AJ @::*I;;0J *@*I:)AJ 0;>I)A;J *;AI:;AJ *0)I:)AJ A:>I:*)J A0=I:)=J ;AA0I:;)J < 0=0I:0=J *0:I:@*J *0AI:C)J C:CI:C:J 0@@I:A:J C@*I:CAJ ;*0;I:;;J A:0I:A;J 0@AI:CCJ C0*I:0>J A0)I:C;J **=I:0@J )A=I:**J 0*:ICA@J >0:I:)*J @0:I:*0J @C)I:*>J @>>I:0)J )C@=I::@J 0=0;I:;*J ;*@@AI:)0J =>)I::CJ )>AI:;)J )>CI:*:J 0;=I:)@J 0>)I:);J C;CI:);J A@0I::>J ;;@)I::*J ))*;I)@;J A*@I:*;J ;*::I:)CJ >>CI:;*J ;*==I:;*J *@*AI::@J ;;>)I::)J 0CCI::@J C*AI::=J >@:I:;:J A==I:;:J @C*I:)AJ ;@*AI::@J ! ;))*I:;@J ;)C=I:):J ;C@CI:);J );C=I:;;J );C@I:;;J *A;0I:;:J =0)AI::*J ;*;0I:;>J ;;>@I:;=J ;*)@I:)@J ;)=*I:)CJ )*>=I:;:J *>:;I::AJ ;C:>*I::=J ! ;@C)IA;;J ;@0:I0>)J ;=)*I*=)J ;>A=I*=AJ **=>I;*AJ A;;)I)CAJ ;0::>0I:>*J ! ;=0>I:):J ;@C@I:;0J ;@*>I:))J ;@==I:)AJ ):)>I:;)J )C;>I:*;J 0:A@I:;)J ));0I::>J )@:=I;A@J ;;)>I:*AJ )C>AI:):J ;0@)I::=J ;>CCI::>J 00*)I::CJ )0=;I:*@J )*@=I;))J )00)I:)>J ):@AI:*:J 0>=*I:;=J =*0:I:;CJ )@)=@I::=J )>0)I:;0J );;*I:;>J ))C>I:;@J *:@CI:)0J )C@AI::=J *);)I:C*J A*@;I::=J *;)*I::CJ ;AA=I:)0J ;0@@I:;0J ;@C*I:)*J ;=CCI:;;J ;>=@I:)AJ *;**I::AJ *>)@I:0)J ;=0>I:*0J ;;0CI:)AJ ;@0CI:;AJ ):>@I:*AJ ;*>@I:)>J ))*@I::>J 0;C=I:)@J *:C=I:0=J )>0CI*C0J )>=AI)*;J *0);I:)*J *)A>I:**J *;>)I*00J < 0A;=I::>J )*C@I:CAJ ));0I:))J )C)>I:;0J )@C0I:;@J )A@AI:)AJ **@)I:;)J AA>0I::@J C)=;I:;)J CC*>I:;>J @:=>I:;>J A;0;I:;AJ @>C)I::0J ):A:0I:;AJ =@)>I:;CJ C0@>I:;AJ C)AAI:)>J A;*;I:);J 0=C*I:;0J 00>)I:);J 0*>CI:)>J ;:@>=I::*J )@@>I:@>J )@:=I:*@J ))@@I::=J )A>*I:;)J )A*>I:;>J ))@)I:;*J ! ;:>;)I::CJ AA):I:;0J A*=CI:;;J @=C;I:)0J @*)CI::>J >0;:I::=J ;0:)>I::*J ;:=:*I::;J )A);I:A0J )C);I::AJ *0CCI::=J )@>@I::)J )AA)I::0J *0@CI::0J 8 ! ! ! < ! ! ! < ! : :@*I*00J );0I:>=J )*CI:AAJ ;A;I;@;J )A@I))0J *A>I):;>J *C=I;=>J *@0I)*=J 0>@I;CAJ @**I:@CJ )==I:>CJ A;=I;)*J C;)I;;>J ;;;CI:@@J ;)::I:CCJ ;A*0I0C)J ;@*;I:*@J ;;@:I:A:J ):0)I:A;J );A0I:0AJ ;@:AI:@CJ ;=*)I;>*J )>>*I:*>J )000I:C@J C*)*I:*CJ C@:AI:0;J )@@;I:**J AAA;I:)=J )AA;I:)CJ ; :=)I=0;J );0I:A>J )*=I;;>J ;C;I;@*J )@=I0A@J *A*I;)@=J *0*IAA:J *@@I);0J C**I*)0J @0@I;)*J *:)I;:AJ AAAI;=;J C0CI;>;J ;;ACI);)J ;))@I;:CJ ;AC;I*)@J ;A@@I:A:J ;):)I;*0J );@;I:0>J ))*@I:0*J ;C;)I:A;J ;;@@I);=J )AAAI;;)J ))@)I:A0J C0C=I:A)J C*C:I:0*J )@:>I:0>J A*A0I:AAJ )C*AI:)@J ) :@=I**@J );;I;)CJ )0:I):AJ );*I;=@J )A=I;**J *=*I;=ACJ *0:I;=*J 0A0I)0;J A*0I*@;J @>)I;0CJ 0A@I;=0J ;;0=I;>;J >>*I*C@J ;*:AI*:>J ;*C=I)CAJ ;@)CIA)@J ;>*=I:>CJ ;>A:I)0;J );:*I*A=J )C@)I:=>J ;@0AI;*;J ;@)AI;:;J )A@*I:A*J )C;@I:>>J A:ACI;>=J A:A:I:>@J )*:AI:0=J @A@:I:@@J *);>I:>AJ :;) :@*I*A>J );CI:0)J )*>I)>AJ ;C@I*;>J )A>I;>@J *CCIA0=J *C@I;A)J *>;I))CJ C:AI;@)J @0;I;)>J *:>I):*J A*CI))*J C;CI:@*J ;;>)I;)0J ;);CI;;:J ;A*:I);;J ;@;AI:*CJ ;;=>I;*)J ):))I:A0J );>;I:C0J ;C>;I:@CJ ;*)@I;:)J )AC)I;;CJ ))>=I:A=J C)>:I:*CJ CC>>I:C0J )C:*I:C;J A0;=I:0CJ )A==I:A*J :;) :;) :;) :@0I)0=J :@0I:=;J :@0I)=0J );CI:@>J );0I:C0J );0I:>)J )*CI:=)J )*AI;)>J )*AI;*CJ ;C@I;=)J ;C@I)A>J ;C>I;CCJ )@)I;=>J )A=I)))J )A>I);;J *A>I;>;:J *A:I;*;)J *A0I;*=AJ *C=I;*AJ *C>I;*>J *A:I;0AJ *>;I;@=J *>:I;0;J *@AI);;J C:CI;A)J C:*I;=CJ C::I;@)J @*=I:0=J @0:I:A>J @0:I:0=J *;:I;*;J *:AI;)>J *:>I;)CJ A)>I;@;J A):I)*;J A)AI)C0J C;AI:>>J C;@I:=@J C;0I;);J ;;A>I;;:J ;;ACI;00J ;;A0I;:0J ;));I:A>J ;):)I:)*J ;);:I:C@J ;ACCI*=:J ;A;0I*>>J ;A;=I0)>J ;@*:I:>AJ ;@;)I:CCJ ;@)=I:A)J ;;=>I;)@J ;;@0I;))J ;;@=I;>@J ):*@I:A=J ):;=I:@:J ):;CI:*)J );>>I:=@J );A=I:A*J );>*I:@@J ;C@:I;*@J ;C@AI:A>J ;CACI;:>J ;**0I;C0J ;*);I:C=J ;*)0I:@0J )*;@I))AJ )AC@I:0:J )***I;;@J )*00I:A0J ))@CI:0@J )*)AI:@AJ C*A=I:C0J C)>0I:**J C*CCI:@;J C0*0I:@*J CCC:I:*=J C*>>I:==J )0)=I:0*J )0@>I:)AJ )*=@I:;CJ A0**I:@)J A*=)I:C*J A**>I:CCJ )@>AI))AJ )A>@I:0:J )@))I;A:J 4 0 A+ ' 4 4 4 * & ; ' % 4 ' 7 ) * ' !2 ' + >??P ' # 4 0# A+ ' & 4 * & ; ' > 4 ' 7 ) * ' ()!!2$** ' + >P ' 8 ! : ; ) : ; ) &13%*:: 0@AI:*=J )0@I:*CJ ))AI:AAJ )))I::=J )0;I:)=J ));I::=J );@I:);J ! ;C0)I:)*J ;)*0I:0@J ;;*;I:;0J ;;C;I:0;J ;)0AI:;)J ;;*)I::>J ;;C0I::@J )AA;I:;=J ;C*=I:;AJ ;0C>I::>J ;CC@I:0*J ;C>>I::=J ;0>=I::AJ ;A:0I::AJ )AA@I::)J ;;C)I::AJ =)*I:;:J =:=I:;)J ;;0@I::AJ =;;I::CJ >==I::*J *A;>I:;;J ;0@*I:;;J @:CI::)J @)AI:;@J ;0>0I:))J @;@I::@J @*0I:*CJ 0:A)I:*@J )>=0I:>@J )A;*I:00J )C=@I:>0J )=;@I:CCJ )@::I:)@J )@@AI::;J < 0;>AI:))J ;>A;I::@J ;AC)I::=J ;A)AI::>J )))@I:)*J ):=:I::AJ );:0I::0J ;:@0AI:)*J )*)>I:;)J ))*>I::@J ;A):I::AJ )*))I::0J ))*)I::0J ;A;@I::;J ;:>C>I::;J )*C:I:)AJ );A;I::@J ):)>I::AJ )*C>I::;J );CAI:::J ):::I::)J 8 ! &13%*:: ! < : )0>I:ACJ ;)*;I:)=J ;CAAI:;=J ;;C*I::AJ ;C))I)A)J )>>:I;:*J ;>)>I::=J )*)AI::=J )*0=I:)>J ; ))@I:@*J ;;)*I:;)J ;0A>I:*CJ =;CI::@J @:@I:;>J )A:>I;:CJ ;A**I:;=J ))*@I::=J );A@I:0;J ) ))*I:*;J ;;*AI:A>J ;C>;I:)CJ >>>I::AJ @)CI::AJ )C=)I:>0J ;A;0I:;=J ;A;=I::;J )::AI:;:J :;) ))AI:@AJ ;;;=I:*0J ;0=@I:;CJ >>>I:0AJ @)CI:);J )C>>I;:)J ;A:=I:)@J ;A)@I::@J )::AI:;0J :;) :;) :;) );CI:*CJ )))I:C=J );:I:0@J ;;*)IA;*J ;;;AI:00J ;:==I:**J ;C@)I;@)J ;0>;I:0;J ;0>)I:;)J @00I:0;J >>;I::=J @*>I:*:J A@:I::>J @;*I:;0J AC@I:);J ));0I:>>J )A:>I;;0J ));)I;A:J ;*=;I:C:J ;A:>I:>)J ;*@)I:;@J ;C:)I:;*J ;A;@I::>J ;0=CI:):J ;=:)I:;=J ):;:I:*AJ ;=:AI:;AJ 4 0## A+ ' & 4 * & ; ' > 4 ' 7 ) * ' ()!!2$** ' + @P ' 777 1 #! $ 8 ! 4 2% $ 4-& =::* ::: >C* ;00 =>A= ::: :@) :C= A>;C )C=> C*: :CA =0C* ::: 0C= :>> ! =)*) ::: @:; :AA ! =C;> ::: 0)@ :CC >)*: ::: ;@)C :0C < >=>) ::: =AC :C0 >@C@ ::: ;);A :)@ =C@: ::: *>= :0: >*;C ::: ;A0: :0C @A;) ::: )*0; :0@ ! >@@; ::: ;):: :)= =C=; ::: *=: :;= ! =0*@ ::: C): :0) ! >@C; **> >@C :*A >0A0 ::: ;0=* :0* >:*@ ;:=> >)= :*A >)0> 0)A ;)=* :*) =A*= ::: *0) :;= >=A0 ::: ==C :0) =>;; ::: ;@@ :;) < >C>= A;; @@) :)> =C)A ::: 00> :)A @=@0 ;C:: C:@ :;= >A;C 0)* =*) :)= =0:@ ::: C>: :;* ! >0CC A:: =;A :)= >C@= ::: ;*=A :)C 4 >>*C )A) >A; :0) 8 ! 4 2% $ 4-& < >=0@ =*) ;;) :;: &13%)::: =)00 00= )>0 :)0 ! >=>* A;= *>0 :;C @*@A ;=0@ AC) :)C =::A >)A ;C@ :;; =;C: C*: *:0 :;A =>@A :=C :)A ::* =>0A ;)C :)C ::* =@A= ::: ))* ::> 4 =;** A;0 )0; :;* 7F 1 8 ! ! ! < ! ! ! < ! 4 8 =@A) I)0AJ ==>; I;C@=J ==:0 I=)CJ =>A) IA0CJ =0)@ I000J =>>= I;@@0J =;== I***J =C0) I0*>J >CAC ICCCJ =C>: I))>J =;=* IAA;J =:=C I*@)J =0=@ I;C>AJ =>;; I;;=*J =@;0 I**=AJ >=)) I0))J >@)* I@;@J >;)= I@>)J =0:; IA)>J ==*0 I;=CAJ >;>) I)=@J =>:C I)C;J =;A* I00=J ==:0 I0**;J >=>0 I;CC@J AA=> I0*0J =C*> I))@J =:*> I;C;)J >*>) I*0)J =)*C I=@CJ - )*> IAJ :;= I*J :=A I=J ;*> I=J C@* I)@J ;;; I):J >:; I)=J 0C> I);J ;0*C I=*J 0): I;:J >:@ IC>J =:C I*@J C:* I>0J ;>= I)*J )>A I;::J ;:@> IC;J ;)@@ I;:CJ ;>@; I;>:J C== I0:J :AA I;*J ;>;> IAAJ ;=C ICJ >*@ I0;J :=A I0)J ;:;A I;@AJ **:) I);0J 0A) I;;J =A) I;A;J ;A;> IAAJ @AC IC>J - : - ; - ) )*> IAJ ::: I:J ::: I:J :;= I*J ::: I:J ::: I:J :@C I@J :); I)J ::: I:J :A; I0J :@A ICJ ::: I:J 0)C I):J ;0= I@J ::: I:J :>= I;AJ :)) I0J ::: I:J 0@: I;@J **; I;)J ::: I:J *@: I;@J :>@ I0J ::: I:J >=C IC>J 0@> I*;J :A) I0J );: ICJ );: ICJ ::: I:J AC0 I0@J ;C* I;;J ::: I:J A;; I)CJ )=* I;)J ::: I:J *C* IC=J ;C: I)CJ ::: I:J ;)* I;CJ :AA I>J ::: I:J )*@ I>*J :0A I;AJ ::* I;J 0>A I)*J C@; I)@J :); I;J @=; IACJ 0@0 I*=J :;) I;J ;**; I;)>J C*: IC;J :;: I;J );: I;0J )>0 I;=J ;:C I@J :0; I>J :): I0J ::C I;J C@= I);J ;;C@ I0)J :>* I*J :@> I)J ::: I:J ;;@ I*J 0)= I);J *>> I;=J :): I;J :@* I*)J :); I=J ::) I;J A)* I;:>J *C> IA)J :*C IAJ ;C;) I=>J ;0=@ I=@J )=* I;=J :0) I;J )C) IAJ ;A> I0J C;0 I>AJ *C* IC=J :=A I;AJ A;* I)CJ =*; I*>J :@0 I*J 0;= I*0J *:> I);J :*> I)J 8 ! < &13%)::: ! 4 8 >A=0 I0)AJ @;A= IC>:J AA;@ I*;*J C:); I0>*J >;=0 IC0=J @)C* I)A0J =0C@ I)00J =;A: I);>J @);* I)=CJ @A0) I*@0J - ;*:A IA0J )>*; I))=J **>* I;A:J 0=@= I0@=J ;>:A I;);J )@0@ I;::J C0* I;0J >0: I):J )@>@ I;;0J )*C> I;00J - : - ; - ) *)@ I;AJ 0=: I)0J 0=: I)0J 00C I*AJ ;)@* I;:*J ;;;) I=:J ;;); IC*J ;*=C IAAJ >A@ I0;J ;>@; I;>:J ))CA I);@J >C) I>)J >*A ICAJ C>) I*=J *>> I)AJ 0A@ I;@J ;C*> ICAJ @0) I)@J ;=0 ICJ ;CC I0J ;=0 ICJ **A I>J )=0 I@J );: ICJ A;; I)CJ ;)@; IC)J =:C I*@J A=: I00J ;:)> IA*J A0: I*@J