99 inlining

Upload: firefoxextslurper

Post on 31-May-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 99 Inlining

    1/21

    T o a p p e a r i n E C O O P ' 9 9

    I n l i n i n g o f V i r t u a l M e t h o d s

    D a v i d D e t l e f s a n d O l e A g e s e n

    S u n M i c r o s y s t e m s L a b o r a t o r i e s

    ?

    1 N e t w o r k D r i v e

    B u r l i n g t o n , M A 0 1 8 0 3 - 0 9 0 2 , U S A

    f d a v i d . d e t l e f s , o l e . a g e s e n g @ s u n . c o m

    A b s t r a c t . W e d i s c u s s a s p e c t s o f i n l i n i n g o f v i r t u a l m e t h o d i n v o c a t i o n s .

    F i r s t , w e i n t r o d u c e a n e w m e t h o d t e s t t o g u a r d i n l i n i n g s o f s u c h i n -

    v o c a t i o n s , w i t h a d i e r e n t s e t o f t r a d e o s f r o m t h e c l a s s - e q u a l i t y t e s t s

    p r o p o s e d p r e v i o u s l y i n t h e l i t e r a t u r e . S e c o n d , w e c o n s i d e r t h e p r o b l e m

    o f i n l i n i n g v i r t u a l m e t h o d s d i r e c t l y , w i t h n o g u a r d i n g t e s t , i n d y n a m i c

    l a n g u a g e s s u c h a s S e l f o r t h e J a v a

    T M

    p r o g r a m m i n g l a n g u a g e , w h o s e s e -

    m a n t i c s p r o h i b i t a s t a t i c i d e n t i c a t i o n o f t h e c o m p l e t e s e t o f m o d u l e s

    t h a t c o m p r i s e a p r o g r a m . I n n o n - d y n a m i c l a n g u a g e s , a w h o l e - p r o g r a m

    a n a l y s i s m i g h t p r o v e t h e c o r r e c t n e s s o f a d i r e c t v i r t u a l i n l i n i n g . I n d y -

    n a m i c l a n g u a g e s , h o w e v e r , s u c h a n a l y s e s c a n b e i n v a l i d a t e d b y l a t e r c l a s s

    l o a d i n g , a n d m u s t t h e r e f o r e b e t r e a t e d a s a s s u m p t i o n s w h o s e l a t e r v i o l a -

    t i o n m u s t c a u s e r e c o m p i l a t i o n . I n t h e p a s t , s u c h s y s t e m s h a v e r e q u i r e d

    a n o n - s t a c k r e p l a c e m e n t m e c h a n i s m t o u p d a t e c u r r e n t l y - e x e c u t i n g i n v o -

    c a t i o n s o f m e t h o d s c o n t a i n i n g i n v a l i d a t e d i n l i n i n g s . T h i s p a p e r p r e s e n t s

    a n a l y s e s t h a t a l l o w s o m e v i r t u a l c a l l s t o b e i n l i n e d d i r e c t l y , w h i l e e n s u r -

    i n g t h a t i n v o c a t i o n s i n p r o g r e s s m a y c o m p l e t e s a f e l y e v e n i f c l a s s l o a d i n g

    i n v a l i d a t e s t h e i n l i n i n g f o r f u t u r e i n v o c a t i o n s . T h i s p r o v i d e s t h e b e n e t s

    o f d i r e c t i n l i n i n g w i t h o u t t h e n e e d f o r o n - s t a c k r e p l a c e m e n t , w h i c h c a n

    b e c o m p l i c a t e d a n d r e q u i r e s p a c e - c o n s u m i n g d a t a s t r u c t u r e s .

    1 I n t r o d u c t i o n

    O n e o f t h e m o s t i m p o r t a n t j o b s o f a p r o g r a m m i n g l a n g u a g e i s t o p r o v i d e g o o d

    s e m a n t i c a b s t r a c t i o n b o u n d a r i e s . O n e o f t h e m o s t i m p o r t a n t j o b s o f a p r o g r a m -

    m i n g l a n g u a g e i m p l e m e n t a t i o n i s t o r e m o v e t h e s e a b s t r a c t i o n b o u n d a r i e s t o t h e

    e x t e n t n e c e s s a r y t o p e r m i t e c i e n t e x e c u t i o n . M e t h o d s , o n e o f t h e d i s t i n g u i s h -

    i n g c h a r a c t e r i s t i c s o f o b j e c t - o r i e n t e d l a n g u a g e s , a r e a v e r y i m p o r t a n t a b s t r a c t i o n

    m e c h a n i s m . B y e n c a p s u l a t i n g f u n c t i o n a l i t y i n a m e t h o d , a p r o g r a m m e r l e a v e s

    ?

    S u n , S u n M i c r o s y s t e m s , J a v a , a n d H o t J a v a a r e t r a d e m a r k s o r r e g i s t e r e d t r a d e m a r k s

    o f S u n M i c r o s y s t e m s , I n c . i n t h e U n i t e d S t a t e s a n d o t h e r c o u n t r i e s . A l l S P A R C

    t r a d e m a r k s a r e u s e d u n d e r l i c e n s e a n d a r e t r a d e m a r k s o r r e g i s t e r e d t r a d e m a r k s o f

    S P A R C I n t e r n a t i o n a l , I n c . i n t h e U n i t e d S t a t e s a n d o t h e r c o u n t r i e s . P r o d u c t s b e a r i n g

    S P A R C t r a d e m a r k s a r e b a s e d u p o n a n a r c h i t e c t u r e d e v e l o p e d b y S u n M i c r o s y s t e m s ,

    I n c .

  • 8/14/2019 99 Inlining

    2/21

    o p e n t h e p o s s i b i l i t y o f r e i m p l e m e n t a t i o n o f t h e m e t h o d , a d d i n g n e w f u n c t i o n a l -

    i t y w i t h o u t r e q u i r i n g c h a n g e s a t c a l l s i t e s . F o r e x a m p l e , c o n s i d e r a P o i n t c l a s s

    w h o s e C a r t e s i a n c o o r d i n a t e s a r e g i v e n i n p u b l i c l y a c c e s s i b l e x a n d y e l d s . I n

    s o m e a p p l i c a t i o n i t i s f o u n d d e s i r a b l e t o o b t a i n t h e p o l a r c o o r d i n a t e s o f p o i n t s .

    I n e x t e n d i n g P o i n t t o a c c o m m o d a t e t h i s r e q u i r e m e n t , w e d e c i d e t o c a c h e t h e

    r e s u l t f o r e c i e n c y , a n d o n l y r e c o m p u t e i t w h e n t h e x o r y c o o r d i n a t e c h a n g e s .

    S i n c e t h e e l d s a r e p u b l i c , t h i s r e q u i r e s s o m e e d i t i n g e v e r y w h e r e x o r y a r e m o d -

    i e d . I f , o n t h e o t h e r h a n d , t h e e l d s h a d b e e n p r i v a t e , a n d p u b l i c u s e s h a d b e e n

    m e d i a t e d b y g e t a n d s e t m e t h o d s , t h e n t h e r e c o m p u t a t i o n o f t h e p o l a r f o r m

    w o u l d b e a s i m p l e l o c a l c h a n g e t o t h e P o i n t c l a s s .

    A t p r e s e n t , m a n y p r o g r a m m e r s r e c o g n i z e t h e w i s d o m o f s u c h o b s e r v a t i o n s ,

    b u t a v o i d t h e u s e o f t h e e x t r a a b s t r a c t i o n . F o r i m m a t u r e p r o g r a m m e r s t h e r e a s o n

    m a y b e t o a v o i d s o m e t y p i n g , b u t e v e n m a t u r e p r o g r a m m e r s m a y a v o i d a b s t r a c -

    t i o n b e c a u s e t h e y a r e l e g i t i m a t e l y w a r y o f e x t r a c o s t . T h u s , i f w e a r e t o a l l o w

    p r o g r a m m e r s t o w r i t e i n t h e m o s t m o d u l a r a n d r o b u s t s t y l e w i t h o u t i n c u r r i n g a

    p e r f o r m a n c e p e n a l t y , w e m u s t e n s u r e t h a t s i m p l e m e t h o d s e x e c u t e a s f a s t a s i f

    t h e e x t r a a b s t r a c t i o n l a y e r w e r e n o t p r e s e n t . I n p r a c t i c e , t h i s d i c t a t e s t h a t s u c h

    m e t h o d s b e i n l i n e d .

    T h e a b o v e r e m a r k s a p p l y g e n e r a l l y t o m o s t p r o g r a m m i n g l a n g u a g e s . O b j e c t -

    o r i e n t e d l a n g u a g e s , s u c h a s S i m u l a 3 , C + + 2 6 , M o d u l a - 3 2 2 , S m a l l t a l k 1 4 ,

    E i e l 2 1 , T r e l l i s 2 4 , C L O S 1 3 , a n d t h e J a v a

    T M

    p r o g r a m m i n g l a n g u a g e 1 5 ,

    t o n a m e j u s t a f e w , c o m p l i c a t e i n l i n i n g , b e c a u s e m e t h o d s a r e u s u a l l y v i r t u a l

    V i r t u a l m e t h o d s a r e d e n e d i n o n e c l a s s , b u t m a y b e o v e r r i d d e n i n s u b c l a s s e s o f

    t h a t c l a s s . T h e m e t h o d a c t u a l l y i n v o k e d a t a c a l l s i t e d e p e n d s o n t h e d y n a m i c

    t y p e o f t h e r e c e i v e r o b j e c t .

    I n l i n i n g o f v i r t u a l m e t h o d s i s d i c u l t b e c a u s e a g i v e n c a l l s i t e m a y i n v o k e

    s e v e r a l d i e r e n t a c t u a l m e t h o d s o v e r t h e c o u r s e o f a p r o g r a m e x e c u t i o n . T h u s ,

    i t m a y b e i m p o s s i b l e t o u n i q u e l y i d e n t i f y c o d e t o i n l i n e . H o w e v e r , i n m a n y

    p r o g r a m s s o m e v i r t u a l c a l l s i t e s a c t u a l l y e x e c u t e o n l y o n e m e t h o d , i . e . , a r e

    m o n o m o r p h i c r a t h e r t h a n p o l y m o r p h i c . S o m e c a l l s i t e s a r e p r o v a b l y m o n o m o r -

    p h i c ; o t h e r s a r e a l m o s t m o n o m o r p h i c , " i n t h a t s e v e r a l m e t h o d s m i g h t b e e x e -

    c u t e d , b u t o n e i s e x e c u t e d m u c h m o r e f r e q u e n t l y t h a n t h e o t h e r s .

    I n t h e l a t t e r s i t u a t i o n , a s t r a t e g y t h a t h a s b e e n u s e d p r e v i o u s l y i n t h e l i t e r -

    a t u r e i s t o s e l e c t c o d e t o b e i n l i n e d , t h e n g e n e r a t e a t e s t t o g u a r d t h e i n l i n e d

    c o d e t o e n s u r e t h a t i t i s c o r r e c t f o r t h e d y n a m i c t y p e o f t h e c u r r e n t r e c e i v e r .

    I f t h e t e s t f a i l s , t h e n o r m a l v i r t u a l c a l l m e c h a n i s m i s u s e d . T h e g u a r d t e s t i s

    u s u a l l y a c l a s s t e s t , v e r i f y i n g t h a t t h e c l a s s o f t h e r e c e i v e r o b j e c t m a t c h e s a p a r -

    t i c u l a r c l a s s . O n e c o n t r i b u t i o n o f t h i s p a p e r i s t o i n t r o d u c e a n a l t e r n a t i v e t e s t ,

    a m e t h o d t e s t t h a t c o m p a r e s t h e a d d r e s s o f t h e m e t h o d i n l i n e d w i t h t h e a d d r e s s

    o f t h e v i r t u a l m e t h o d t o b e e x e c u t e d . T h i s i n c u r s t h e o v e r h e a d o f a n e x t r a l o a d ,

    b u t i s m o r e r o b u s t , a n d i n s o m e w a y s m o r e s u i t e d t o d y n a m i c c o m p i l a t i o n .

    M o s t a n a l y s e s t h a t p r o v e a c a l l s i t e m o n o m o r p h i c r e q u i r e i n t e r p r o c e d u r a l

    t e c h n i q u e s . S u c h a n a l y s e s w o r k b e s t f o r l a n g u a g e s w h e r e t h e f u l l s e t o f c o m p o -

    n e n t s t h a t c o m p r i s e a p r o g r a m i s k n o w n s t a t i c a l l y . L a n g u a g e s w i t h m o r e d y n a m i c

    s e m a n t i c s m a k e s u c h a n a l y s e s m o r e d i c u l t . I n t h e J a v a p r o g r a m m i n g l a n g u a g e ,

    2

  • 8/14/2019 99 Inlining

    3/21

  • 8/14/2019 99 Inlining

    4/21

    t i o n : f o r e x a m p l e , i f a d e o p t i m i z a t i o n p o i n t s e p a r a t e s t w o s o u r c e c o d e w r i t e s ,

    t h e n t h e y c a n ' t b e r e o r d e r e d b y a c o d e s c h e d u l e r . F i n a l l y , v e t e r a n s o f t h e S e l f

    p r o j e c t r e c o u n t h o w m u c h o f t h e c o m p l e x i t y o f t h e s y s t e m i s r e l a t e d t o d e o p t i -

    m i z a t i o n a n d r e o p t i m i z a t i o n .

    T h i s b r i n g s u s , n a l l y , t o t h e s e c o n d c o n t r i b u t i o n o f t h i s p a p e r . W e p r e s e n t

    a p r o p e r t y o f r e c e i v e r e x p r e s s i o n s c a l l e d p r e e x i s t e n c e . V i r t u a l m e t h o d i n v o c a -

    t i o n s w h o s e r e c e i v e r s h a v e t h i s p r o p e r t y c a n b e i n l i n e d d i r e c t l y , a n d n o o n - s t a c k

    r e p l a c e m e n t m e c h a n i s m i s n e e d e d t o h a n d l e i n v o c a t i o n s i n p r o g r e s s w h e n t h e a s -

    s u m p t i o n s o n w h i c h t h e d i r e c t i n l i n i n g s d e p e n d a r e b r o k e n . W e p r e s e n t t w o s t a t i c

    a n a l y s i s t e c h n i q u e s t h a t c a n p r o v e p r e e x i s t e n c e i n a s i g n i c a n t n u m b e r o f c a s e s .

    W e p r e s e n t m e a s u r e m e n t s i n d i c a t i n g t h e e c a c y a n d c o s t s o f t h e s e a n a l y s e s , a n d

    t h e s p e e d u p s t h e y o b t a i n i n a n a c t u a l J a v a v i r t u a l m a c h i n e i m p l e m e n t a t i o n .

    2 R e l a t e d w o r k

    S e v e r a l t e c h n i q u e s h a v e b e e n u s e d t o i m p l e m e n t v i r t u a l c a l l s . T h e o r i g i n a l B l u e

    B o o k " i m p l e m e n t a t i o n o f S m a l l t a l k 1 4 u s e d a h a s h t a b l e m e c h a n i s m t o l o o k

    u p m e t h o d n a m e s a t r u n t i m e . O b j e c t - o r i e n t e d l a n g u a g e s w i t h m o r e c o n s t r a i n e d

    t y p e s y s t e m s w e r e a l s o d e v e l o p e d ; t h e t y p e c o n s t r a i n t s a l l o w m o r e e c i e n t v i r -

    t u a l m e t h o d i n v o c a t i o n , u s i n g w h a t a r e c a l l e d v t a b l e s i n C + + 2 6 . W i t h t h i s

    t e c h n i q u e , e a c h m e t h o d i s s t a t i c a l l y a s s i g n e d a n i n d e x t h a t i s c o n s t a n t a c r o s s a l l

    c l a s s e s t h a t i m p l e m e n t t h e m e t h o d . A v i r t u a l c a l l j u m p s i n d i r e c t l y t o t h e c o d e

    a d d r e s s i n t h e v t a b l e o f i t s r e c e i v e r o b j e c t a t t h e i n d e x c o r r e s p o n d i n g t o t h e

    i n v o k e d m e t h o d .

    S m a l l t a l k s y s t e m s p i o n e e r e d d y n a m i c c o m p i l a t i o n t e c h n i q u e s 8 , i n c r e a s i n g

    t h e e c i e n c y o f e x e c u t i o n . T h u s , t h e r e l a t i v e c o s t o f m e t h o d l o o k u p i n c r e a s e d , s o

    i n l i n e c a c h e t e c h n i q u e s w e r e d e v e l o p e d t o s p e e d u p c a l l s . A n i n l i n e c a c h e r e c o r d s

    t h e c l a s s o f t h e l a s t r e c e i v e r o b j e c t o b s e r v e d a t t h e c a l l s i t e , a n d j u m p s d i r e c t l y

    t o t h e i m p l e m e n t a t i o n o f t h e m e t h o d f o r t h a t c l a s s . A m e t h o d p r o l o g u e v a l i d a t e s

    t h a t t h e d y n a m i c t y p e o f t h e r e c e i v e r m a t c h e s t h e e x p e c t e d t y p e ; i f t h i s t e s t f a i l s ,

    a s l o w e r m e t h o d l o o k u p f o r w a r d s t h e c a l l a n d r e b i n d s t h e c a l l s i t e c a c h e t o t h e

    c l a s s o f t h e c u r r e n t r e c e i v e r . H o l z l e p r e s e n t s a g e n e r a l i z e d p o l y m o r p h i c f o r m o f

    i n l i n e c a c h e s 1 7 . I t t u r n s o u t t h a t o n s o m e m o d e r n a r c h i t e c t u r e s t h e h i g h c o s t s

    o f i n d i r e c t c a l l s m a k e i n l i n e c a c h e t e c h n i q u e s a t t r a c t i v e e v e n f o r l a n g u a g e s f o r

    w h i c h v t a b l e s c o u l d b e u s e d 1 0 .

    S e v e r a l s y s t e m s p e r f o r m a n a l y s e s t o s t a t i c a l l y b i n d v i r t u a l c a l l s , a l l o w i n g

    t h e m t o b e i n l i n e d o r i m p l e m e n t e d w i t h f a s t d i r e c t c a l l s . D e a n e t a l . u s e a c l a s s

    h i e r a r c h y a n a l y s i s t o s t a t i c a l l y b i n d v i r t u a l c a l l s 7 i n t h e V o r t e x s y s t e m 6 .

    C l a s s h i e r a r c h y a n a l y s i s i s a f a i r l y i n e x p e n s i v e p r o c e s s , t h a t , g i v e n a c o m p l e t e

    p r o g r a m , d e t e r m i n e s w h e n t h e s t a t i c t y p e o f a r e c e i v e r i m p l i e s t h a t a n i n v o k e d

    m e t h o d h a s o n l y a s i n g l e i m p l e m e n t a t i o n i n t h e s e t o f c l a s s e s u s e d i n t h e p r o g r a m .

    M o r e e x p e n s i v e t y p e o w a n a l y s e s a t t e m p t t o t i g h t e n t h e s t a t i c t y p e c o n s t r a i n t

    o n t h e r e c e i v e r o b j e c t , i d e a l l y t o a s e t s m a l l e n o u g h t o d e t e r m i n e t h e i n v o k e d

    m e t h o d . C h a m b e r s e t a l . p r e s e n t s u c h a n a n a l y s i s 1 . F e r n a n d e z 1 2 d e s c r i b e s

    a l i n k - t i m e o p t i m i z a t i o n s y s t e m , a n d D i w a n e t a l . 9 d e s c r i b e W P O , a W h o l e

    4

  • 8/14/2019 99 Inlining

    5/21

    P r o g r a m O p t i m i z e r . " B o t h s y s t e m s a r e f o r M o d u l a - 3 p r o g r a m s a n d p e r f o r m b o t h

    o f k i n d s o f a n a l y s e s . I n a d d i t i o n , s e v e r a l l a n g u a g e s , s u c h a s T r e l l i s , D y l a n 1 1 ,

    a n d t h e J a v a p r o g r a m m i n g l a n g u a g e , h a v e l i n g u i s t i c m e c h a n i s m s t h a t a l l o w t h e

    p r o g r a m m e r t o d e c l a r e a c l a s s s e a l e d , t h a t i s , i n e l i g i b l e f o r f u r t h e r s u b c l a s s i n g .

    T h i s e n a b l e s s t a t i c b i n d i n g .

    T h e S e l f s y s t e m c o n t i n u e s t h e S m a l l t a l k r e s e a r c h p a t h o f r u n - t i m e c o m p i l a -

    t i o n , a d d i n g m o r e a g g r e s s i v e o p t i m i z a t i o n , i n c l u d i n g e x t e n s i v e m e t h o d i n l i n i n g

    1 6 , w h o s e c o r r e c t n e s s i s o f t e n m a i n t a i n e d b y t h e p r e v i o u s l y m e n t i o n e d o n - s t a c k

    r e p l a c e m e n t m e c h a n i s m . D e a n ' s t h e s i s 4 d e s c r i b e s s e v e r a l i n l i n i n g t e c h n i q u e s

    t h a t u s e c l a s s - b a s e d g u a r d t e s t s t o e n s u r e c o r r e c t n e s s . T h e s e t e c h n i q u e s i n c l u d e

    e c i e n t s u b c l a s s t e s t s t h a t o e r s o m e o f t h e s a m e b e n e t s a s t h e m e t h o d t e s t

    o f t h e p r e s e n t p a p e r . A l s o , D e a n d e n e s t h e c o n c e p t o f t h e s e t o f c l a s s e s s h a r -

    i n g t h e s a m e i m p l e m e n t a t i o n o f a m e t h o d , b u t u s e s t h i s c o n c e p t o n l y i n s t a t i c

    a n a l y s e s , n o t d y n a m i c a l l y t o i m p l e m e n t a g u a r d t e s t . V i t e k , K r a l l , a n d H o r s p o o l

    2 7 d e s c r i b e d a t a s t r u c t u r e s t h a t s u p p o r t t i m e - a n d s p a c e - e c i e n t i m p l e m e n -

    t a t i o n s o f s u b t y p e t e s t s . S o m e o f t h e s e t e c h n i q u e s r e q u i r e p o t e n t i a l l y e x p e n s i v e

    r e c o m p u t a t i o n w h e n n e w c l a s s e s a r e a d d e d t o t h e s y s t e m .

    T h e c u r r e n t w o r k u s e s c o n t r i b u t i o n s f r o m t h e s e r e s e a r c h d i r e c t i o n s . T h e s y s -

    t e m i n w h i c h w e d i d o u r e x p e r i m e n t s s p e e d s v i r t u a l c a l l s w i t h i n l i n e c a c h e s . T h e

    w o r k o n d i e r e n t k i n d s o f i n l i n i n g g u a r d s e x t e n d s t h e p r e v i o u s w o r k o n i n l i n -

    i n g i n d y n a m i c s y s t e m s . T h e w o r k o n d i r e c t i n l i n i n g o f v i r t u a l s c o m b i n e s a n e w

    s t a t i c a n a l y s i s w i t h d y n a m i c r e c o m p i l a t i o n i n a n o v e l w a y .

    A n o t h e r l i n e o f r e l a t e d w o r k w h i c h t h e c u r r e n t p a p e r d o e s n o t e x p l o r e i s

    s p e c i a l i z a t i o n . T h e i d e a i s t h a t m e t h o d s o f a c l a s s a r e c l o n e d , s o t h a t i f m e t h o d

    f o o , i n v o k e d o n s o m e o b j e c t o f c l a s s C , c a l l s m e t h o d b a r o n t h e s a m e o b j e c t ,

    i t m a y c a l l t h e c l o n e o f m e t h o d b a r f o r C d i r e c t l y , r a t h e r t h a n i n d i r e c t l y , a n d

    m a y p o s s i b l y i n l i n e t h e c a l l . I n a v a r i a t i o n , a c o m p i l e r m a y i n t r o d u c e t y p e t e s t s

    e a r l y i n a m e t h o d , c r e a t i n g t w o v e r s i o n s o f d o w n s t r e a m c o d e , o n e o f w h i c h

    a s s u m e s t h e t e s t . P l e v y a k a n d C h i e n 2 3 d e s c r i b e a w h o l e - p r o g r a m a n a l y s i s

    t h a t e m p l o y s s p e c i a l i z a t i o n t o i m p r o v e t h e p r e c i s i o n o f t y p e - o w a n a l y s i s . T h i s

    e n a b l e s t h e c o m p u t a t i o n o f a p r e c i s e g l o b a l c o n t r o l - o w g r a p h f r o m w h i c h m o s t

    m e t h o d c a l l s c a n b e s t a t i c a l l y b o u n d . C h a m b e r s a n d U n g a r 2 d e s c r i b e t h e u s e

    o f c u s t o m i z a t i o n i . e . , s p e c i a l i z a t i o n o n t h e t y p e o f t h e r e c e i v e r o b j e c t i n a n

    e a r l y v e r s i o n o f S e l f . A n o t h e r e x a m p l e o f s p e c i a l i z a t i o n i s d e s c r i b e d b y D e a n e t

    a l . 5 . S p e c i a l i z a t i o n i s a n i n t e r e s t i n g a r e a o f r e s e a r c h , b u t o n e w h e r e a n u m b e r

    o f c o m p e t i n g c o n c e r n s e x e c u t i o n s p e e d v s . c o d e s i z e , f o r e x a m p l e m u s t b e

    b a l a n c e d , a n d w e d i d n o t e x p l o r e i t .

    3 M e t h o d t e s t s a n d c l a s s t e s t s .

    A s m e n t i o n e d i n t h e i n t r o d u c t i o n , m o s t s y s t e m s t h a t u s e v i r t u a l i n l i n i n g h a v e

    g u a r d e d t h e i n l i n e d c o d e w i t h a c l a s s t e s t v e r i f y i n g t h a t t h e r e c e i v e r h a s a p a r -

    t i c u l a r c l a s s . I n p s e u d o - m a c h i n e c o d e , t h e c o d e g e n e r a t e d a t s u c h a n i n l i n e d c a l l

    s i t e c o u l d b e :

    5

  • 8/14/2019 99 Inlining

    6/21

    r 0 : = r e c e i v e r o b j e c t

    r 1 : = l o a d r 0 + o f f s e t - o f - c l a s s - i n - o b j e c t

    i f r 1 = = a d d r e s s - o f - e x p e c t e d - c l a s s

    m e t h o d i n l i n i n g

    e l s e

    r 2 : = l o a d r 1 + o f f s e t - o f - m e t h o d - i n - c l a s s ;

    c a l l r 2

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 00 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 11 1 1 1 11 1 1 1 1C Dm

    Em

    B

    F

    Am

    F i g . 1 . A n i n h e r i t a n c e h i e r a r c h y

    T h e b a s i c p r o b l e m w i t h t h e c l a s s t e s t i s t h a t i t s o m e t i m e s f o r c e s t h e n o n -

    i n l i n e d p a t h t o b e t a k e n u n n e c e s s a r i l y . A s s u m e w e h a v e t h e c l a s s e s s h o w n i n

    g u r e 1 . C l a s s A d e n e s a m e t h o d m , c l a s s e s B a n d C e a c h e x t e n d A w i t h o u t

    o v e r r i d i n g m , c l a s s F e x t e n d s C s t i l l w i t h o u t o v e r r i d i n g m , a n d c l a s s e s D a n d E

    e x t e n d A a n d d o o v e r r i d e m . C o n s i d e r a c a l l s i t e t h a t i n v o k e s t h e m e t h o d m o n a

    r e c e i v e r w h o s e s t a t i c t y p e i s A . W e m i g h t w i s h t o i n l i n e s u c h a n i n v o c a t i o n . T h e

    i n l i n e d c o d e f o r A m i s a p p r o p r i a t e w h e n t h e d y n a m i c t y p e o f t h e r e c e i v e r i s a n y

    o f A , B , C , o r F , b u t i n c o r r e c t i f t h e d y n a m i c t y p e i s D o r E . A s i n g l e c l a s s t e s t

    w i l l c o v e r o n l y o n e o f t h e p e r m i t t e d c l a s s e s A , B , C o r F . O n e c o u l d c o n v e r t t h e

    t e s t i n t o a d i s j u n c t i o n o f t h e s e p o s s i b i l i t i e s , b u t o n l y a t s o m e c o s t i n s p e e d a n d

    c o d e d e n s i t y .

    T o s o l v e t h i s p r o b l e m , w e h a v e i n v e n t e d a n a l t e r n a t e t e s t , c a l l e d t h e m e t h o d

    t e s t , t o g u a r d i n l i n e d v i r t u a l m e t h o d s . T h e c l a s s t e s t i m p o s e s t h e r e a s o n a b l e

    r e q u i r e m e n t t h a t e a c h o b j e c t c o n t a i n a p o i n t e r t o i t s c l a s s i n f o r m a t i o n . T h e

    m e t h o d t e s t i m p o s e s a f u r t h e r a s s u m p t i o n , t h a t t h e c l a s s i n f o r m a t i o n i n c l u d e s a

    v t a b l e . A c a l l s i t e i n l i n e d w i t h a m e t h o d t e s t g u a r d w i l l l o o k l i k e t h e f o l l o w i n g :

    6

  • 8/14/2019 99 Inlining

    7/21

    r 0 : = r e c e i v e r o b j e c t

    r 1 : = l o a d r 0 + o f f s e t - o f - c l a s s - i n - o b j e c t

    r 2 : = l o a d r 1 + o f f s e t - o f - m e t h o d - i n - c l a s s

    i f r 2 = = a d d r e s s - o f - i n l i n e d - m e t h o d

    m e t h o d i n l i n i n g

    e l s e

    c a l l r 2

    T h e m e t h o d t e s t o b t a i n s a p o i n t e r t o t h e c l a s s i n f o r m a t i o n f r o m t h e o b j e c t ,

    a n d t h e n l o a d s , f r o m t h e c l a s s ' s v t a b l e , t h e a d d r e s s o f t h e c o d e t h a t w o u l d b e

    i n v o k e d b y a n o r d i n a r y v i r t u a l c a l l . T h e t e s t c o m p a r e s t h i s c o d e a d d r e s s w i t h t h e

    a d d r e s s o f t h e m e t h o d t h a t w a s i n l i n e d . I f t h e y m a t c h , i t i s o b v i o u s l y p e r m i s s i b l e

    t o e x e c u t e t h e i n l i n i n g . A m e t h o d t e s t c a n b e u s e d t o g o o d e e c t i n t h e s i t u a t i o n

    d e s c r i b e d p r e v i o u s l y . S u p p o s e w e d e c i d e t o i n l i n e A m b e c a u s e o n l y c l a s s e s A , B ,

    a n d C , w h i c h s h a r e a s i n g l e i m p l e m e n t a t i o n o f m e t h o d m , a r e l o a d e d w h e n t h e

    c a l l e r i s c o m p i l e d . W e c a n g u a r d t h e i n l i n i n g w i t h a m e t h o d t e s t t h a t c o v e r s

    a l l t h r e e r e c e i v e r c l a s s e s . I f t h e o v e r r i d i n g c l a s s e s D a n d E a r e l o a d e d l a t e r , t h e

    m e t h o d t e s t c o r r e c t l y c h o o s e s n o t t o e x e c u t e t h e i n l i n e d c o d e f o r t h e s e r e c e i v e r

    c l a s s e s . F u r t h e r , i f t h e n o n - o v e r r i d i n g c l a s s F i s l o a d e d l a t e r , t h e i n l i n i n g w i l l b e

    e x e c u t e d f o r t h i s r e c e i v e r c l a s s . I t i s h a r d t o s e e h o w t h i s c o u l d b e a c c o m p l i s h e d

    u s i n g c l a s s t e s t s . T h u s , t h e m e t h o d t e s t h a s t w o a d v a n t a g e s o v e r c l a s s t e s t s :

    a n e c i e n c y a d v a n t a g e , i n c a s e s w h e r e o n e m e t h o d t e s t s u c c i n c t l y r e p r e s e n t s

    t h e r e s u l t s o f s e v e r a l c l a s s t e s t s , a n d a r o b u s t n e s s a d v a n t a g e , i n c a s e s w h e r e a

    m e t h o d t e s t g e n e r a t e d w h e n o n l y s o m e o f t h e c l a s s e s i n t h e p r o g r a m h a v e b e e n

    l o a d e d s t a y s e e c t i v e a s m o r e c l a s s e s a r e l o a d e d .

    T h e m e t h o d t e s t h a s a n o t h e r a d v a n t a g e i n t h e p a r t i c u l a r c a s e o f t h e J a v a

    p l a t f o r m . I t i s a p e r h a p s s e l d o m - r e c o g n i z e d p r o p e r t y o f t h e J a v a v i r t u a l m a -

    c h i n e ' s b y t e c o d e i n s t r u c t i o n s e t t h a t a m e t h o d i n v o c a t i o n n a m e s t h e d e n i t i o n

    o f t h e m e t h o d t h a t i s i n v o k e d ; t h e s t a t i c t y p e o f t h e r e c e i v e r e x p r e s s i o n , w h i c h

    m a y b e m o r e s p e c i c t h a n t h e c l a s s t h a t d e n e s t h e m e t h o d , i s n o t a p p a r e n t i n

    t h e b y t e c o d e s . C o n s i d e r t h e f o l l o w i n g s i t u a t i o n :

    c l a s s A v o i d m . . . ;

    c l a s s B e x t e n d s A O v e r r i d e s m .

    v o i d m . . . ;

    c l a s s C e x t e n d s A . . . D o e s n o t o v e r r i d e m

    c l a s s X

    v o i d y C c . . . c . m ; . . .

    T h e b y t e c o d e s o f t h e m e t h o d X y i n d i c a t e o n l y t h a t t h e i n v o c a t i o n c . m i n v o k e s

    t h e m e t h o d A m ; t h e m o r e s p e c i c t y p e C o f t h e r e c e i v e r c a n b e r e c o v e r e d t h r o u g h

    7

  • 8/14/2019 99 Inlining

    8/21

    a n a b s t r a c t i n t e r p r e t a t i o n s i m i l a r t o t h a t p e r f o r m e d i n t h e b y t e c o d e v e r i c a t i o n

    p r o c e s s 1 9 . W h i l e i t m a y b e a r g u e d t h a t e x c e l l e n t c o m p i l a t i o n o f J V M b y t e c o d e s

    w i l l h a v e t o r e c o v e r t h i s i n f o r m a t i o n , s o m e J I T c o m p i l e r s w i l l w a n t t o o p t i m i z e

    s p e e d o f c o m p i l a t i o n o v e r q u a l i t y o f c o d e p r o d u c e d , a n d t h i s a n a l y s i s w i l l i m p o s e

    s o m e c o s t .

    T h e m i s s i n g t y p e i n f o r m a t i o n i s r e l e v a n t t o t h e c o m p a r i s o n o f m e t h o d t e s t s

    a n d c l a s s t e s t s b e c a u s e i t m a k e s i m p l e m e n t a t i o n o f a u s e f u l c l a s s t e s t p r o b l e m -

    a t i c a l . I n t h e s i t u a t i o n a b o v e , u s e o f a c l a s s t e s t t o g u a r d a n i n l i n i n g o f c . m

    w o u l d b e w o r s e t h a n u s e l e s s u n l e s s w e k n e w t h e m o s t p r e c i s e s t a t i c t y p e o f t h e

    r e c e i v e r : a t e s t a g a i n s t A w o u l d a l w a y s f a i l ! I n s y s t e m s t h a t d o n o t i m p l e m e n t a

    t y p e - r e c o v e r y p a s s , i n c l u d i n g t h e s y s t e m w e u s e , t h e m e t h o d t e s t m a y b e u s e d

    p r o t a b l y w h e r e t h e c l a s s t e s t c a n n o t .

    T h e i m p r e c i s e t y p e i n f o r m a t i o n m a y a l s o l e a d t o m i s s e d i n l i n i n g o p p o r t u n i -

    t i e s . I n t h e e x a m p l e a b o v e , i f t h e c o m p i l e r k n o w s o n l y t h a t t h e r e c e i v e r o f m i s

    a n A , i t w o u l d c o n c l u d e t h a t t w o m e t h o d s m i g h t b e i n v o k e d , a n d p o s s i b l y r e j e c t

    t h e i n v o c a t i o n c . m a s a c a n d i d a t e f o r i n l i n i n g . H o w e v e r , i f t h e p r e c i s e s t a t i c

    t y p e o f t h e r e c e i v e r w e r e k n o w n , t h e c o m p i l e r w o u l d k n o w t h a t t h e i n v o c a t i o n

    c . m a l w a y s i n v o k e s A ' s d e n i t i o n o f m , a n d w o u l d c o n s i d e r t h e c a l l s i t e a b e t t e r

    c a n d i d a t e f o r i n l i n i n g .

    T h e m e t h o d t e s t h a s o n e o b v i o u s d i s a d v a n t a g e w h e n c o m p a r e d t o t h e c l a s s

    t e s t : a n e x t r a d e p e n d e n t l o a d o n t h e f a s t p a t h . O u r c o l l e a g u e A l e x G a r t h w a i t e

    n o t e s t h a t i n s t r u c t i o n s c h e d u l i n g m i g h t a m e l i o r a t e t h i s p r o b l e m . I f s e v e r a l a r g u -

    m e n t s t o a m e t h o d a r e b e i n g c o m p u t e d a n d m o v e d i n t o a r g u m e n t r e g i s t e r s , t h e

    t w o l o a d s r e q u i r e d b y t h e m e t h o d t e s t c a n o f t e n b e s e p a r a t e d .

    3 . 1 M e t h o d a n d c l a s s t e s t m e a s u r e m e n t s

    W e n o w p r e s e n t s o m e m e a s u r e m e n t s o f t h e e c a c y o f v i r t u a l i n l i n i n g i n o u r

    s y s t e m . O u r e x p e r i m e n t s w e r e p e r f o r m e d i n a v e r s i o n o f t h e S u n J a v a

    r

    2 S D K

    f o r t h e S o l a r i s

    T M

    o p e r a t i n g s y s t e m . T h i s e n v i r o n m e n t i n c l u d e s a J I T c o m p i l e r

    t h a t p e r f o r m s i n l i n i n g . T a b l e 1 s h o w s t h e p r o g r a m s f o r w h i c h w e r e p o r t m e a s u r e -

    m e n t s . F o r e a c h b e n c h m a r k , w e r e p o r t l i n e s o f s o u r c e c o d e i n c l u d i n g c o m m e n t s

    a n d o t h e r n o n - c o d e , e x c l u d i n g c l a s s l i b r a r i e s , a n d g i v e a b r i e f d e s c r i p t i o n . T h e

    r s t s e v e n b e n c h m a r k s c o n s t i t u t e t h e S P E C j v m 9 8 s u i t e 2 5 , a n d t h e n e x t t h r e e

    b e n c h m a r k s w e r e c a n d i d a t e s c o n s i d e r e d f o r i n c l u s i o n i n S P E C j v m 9 8 , b u t w e r e

    n o t c h o s e n f o r t h e n a l s u i t e . T h e l a s t t w o b e n c h m a r k s a r e d e r i v e d f r o m r e a l

    a p p l i c a t i o n s . T h e V o l a n o M a r k b e n c h m a r k v o l a n o i n t h e t a b l e s c o n s i s t s o f

    a v e r s i o n o f V o l a n o L L C ' s V o l a n o C h a t i n t e r n e t c h a t s e r v e r 2 0 , a n d a c l i e n t

    p r o g r a m t h a t p r o v i d e s a s i m u l a t e d w o r k l o a d . W e r a n t h e c l i e n t a n d s e r v e r o n

    t h e s a m e m a c h i n e , a n d a d d e d t o g e t h e r m e a s u r e m e n t s f o r b o t h p r o g r a m s . T h e

    p o r t B O B b e n c h m a r k w a s c r e a t e d b y I B M t o p r e d i c t t h e p e r f o r m a n c e o f o b j e c t

    d a t a b a s e s w r i t t e n i n t h e J a v a l a n g u a g e . W e m o d i e d t h i s p r o g r a m t o m a k e i t

    r u n d e t e r m i n i s t i c a l l y .

    T h e m e a s u r e m e n t s a r e p e r f o r m e d o n a S u n U l t r a

    T M

    1 C r e a t o r 3 D d e s k t o p ,

    w h i c h h a s a 1 6 7 M H z U l t r a S P A R C

    T M

    p r o c e s s o r a n d 5 1 2 m e g a b y t e s o f m e m o r y .

    8

  • 8/14/2019 99 Inlining

    9/21

    b e n c h m a r k l i n e s o f c o d e d e s c r i p t i o n

    m t r t 3 7 9 9 M u l t i - t h r e a d e d i m a g e r e n d e r i n g

    j e s s 1 0 5 7 9 V e r s i o n o f N A S A ' s C L I P S e x p e r t s y s t e m s h e l l

    d b 1 0 2 8 S e a r c h a n d m o d i f y a d a t a b a s e

    j a c k 8 1 9 4 P a r s e r g e n e r a t o r g e n e r a t i n g i t s e l f

    m p e g a u d i o n a D e c o m p r e s s a u d i o l e

    j a v a c 2 5 2 1 1 S o u r c e t o b y t e c o d e c o m p i l e r

    c o m p r e s s 9 2 7 L Z W c o m p r e s s i o n a n d d e c o m p r e s s i o n

    r i c h a r d s 3 6 3 7 T h r e a d s r u n n i n g v e v e r s i o n s o f O S s i m u l a t o r

    t s g p 8 9 4 G e n e t i c p r o g r a m f o r t r a v e l i n g s a l e s m a n p r o b l e m

    s i 1 7 0 7 I n t e r p r e t e r f o r a s i m p l e l a n g u a g e

    v o l a n o 1 3 8 1 1 I n t e r n e t c h a t s e r v e r

    p o r t B O B n a T r a n s a c t i o n p r o c e s s i n g b e n c h m a r k

    T a b l e 1 . D e s c r i p t i o n s o f B e n c h m a r k P r o g r a m s .

    T h e c o m p i l e r o n l y i n l i n e s m e t h o d s t h a t h a v e s t r a i g h t - l i n e c o n t r o l o w , c o n -

    t a i n n o e x c e p t i o n h a n d l e r s o r t r y . . . f i n a l l y c o n s t r u c t s , a n d a r e s h o r t e r t h a n

    s o m e m a x i m u m l e n g t h 1 5 b y t e c o d e i n s t r u c t i o n s . R e c u r s i v e i n l i n i n g h a l v e s t h e

    l e n g t h l i m i t t o b o u n d c o d e e x p a n s i o n . I n l i n i n g o f v i r t u a l m e t h o d i n v o c a t i o n s f u r -

    t h e r r e q u i r e s t h e c a l l s i t e t o b e m o n o m o r p h i c w i t h r e s p e c t t o t h e c l a s s e s l o a d e d

    a t t h e t i m e o f c o m p i l a t i o n . W e c u r r e n t l y d o n o t u s e o n - o r o - l i n e p r o l e i n f o r -

    m a t i o n t o d e t e r m i n e w h e n o n e m e t h o d d o m i n a t e s a t a p o l y m o r p h i c c a l l s i t e . W e

    a l s o d o n o t i n l i n e i n v o c a t i o n s o f m e t h o d s o f i n t e r f a c e t y p e s , t h o u g h t h i s w o u l d

    b e a s t r a i g h t f o r w a r d e x t e n s i o n .

    W e m e a s u r e d t h r e e s y s t e m c o n g u r a t i o n s f o r e a c h p r o g r a m . T h e r s t , o u r

    b a s e l i n e s y s t e m , d o e s n o i n l i n i n g o f v i r t u a l m e t h o d s . I t u s e s a n i n l i n e c a c h e

    s c h e m e t o s p e e d u p v i r t u a l i n v o c a t i o n s , s o t h i s c o n g u r a t i o n i s n o s t r a w m a n .

    T h e s e c o n d c o n g u r a t i o n u s e s t h e m e t h o d t e s t . T h e t h i r d h y b r i d c o n g u r a t i o n

    c o m b i n e s m e t h o d t e s t s a n d c l a s s t e s t s : a v i r t u a l i n v o c a t i o n o . m i s i n l i n e d w i t h

    a c l a s s t e s t w h e n t h e d e n i n g c l a s s o f m i s a l e a f c l a s s , o n e w i t h n o s u b c l a s s e s a t

    t h e t i m e o f c o m p i l a t i o n , a n d w i t h a m e t h o d t e s t o t h e r w i s e . I f n o s u b c l a s s e s o f t h e

    d e n i n g c l a s s a r e l o a d e d l a t e r , t h e c l a s s t e s t s h o u l d b e a s a c c u r a t e a s a m e t h o d

    t e s t a n d s o m e w h a t c h e a p e r . H o w e v e r , i f s u b c l a s s e s a r e l o a d e d l a t e r , t h e t e s t m a y

    b e c o m e i n a c c u r a t e . T h i s h y b r i d c o n g u r a t i o n g i v e s u s s o m e e c i e n c y a c c u r a c y

    c o m p a r i s o n o f c l a s s a n d m e t h o d t e s t s .

    F o r e a c h b e n c h m a r k p r o g r a m , t a b l e 2 d e t a i l s t h e n u m b e r o f v i r t u a l c a l l s i t e s

    i n l i n e d , t h e f r a c t i o n t h a t w e r e i n l i n e d w i t h a c l a s s t e s t i n h y b r i d m o d e , t h e

    n u m b e r o f e x e c u t i o n s o f a l l i n l i n e d c a l l s i t e s , a n d t h e n u m b e r o f i n v o c a t i o n s

    t h a t t o o k t h e n o n - i n l i n e p a t h u s i n g t h e p u r e m e t h o d t e s t a n d u s i n g t h e h y b r i d

    s t r a t e g y . T h e b e n c h m a r k s a r e o r d e r e d b y n u m b e r o f e x e c u t i o n s o f i n l i n e d v i r t u a l

    c a l l s i t e s .

    W e c a n m a k e s e v e r a l r e m a r k s a b o u t t h e d a t a i n t a b l e 2 . F i r s t , t h e n u m b e r

    o f i n l i n e d v i r t u a l s i t e s v a r i e s c o n s i d e r a b l y , b y m o r e t h a n a n o r d e r o f m a g n i t u d e ,

    f r o m p r o g r a m t o p r o g r a m , b u t t h e n u m b e r o f e x e c u t i o n s o f t h o s e s i t e s v a r i e s

    9

  • 8/14/2019 99 Inlining

    10/21

    b e n c h m a r k i n l i n e d v i r t u a l h y b r i d e x e c u t i o n s m e t h o d - t e s t h y b r i d

    c a l l s i t e s c l a s s - t e s t m i l l i o n s n o n - i n l i n e n o n - i n l i n e

    e x e c s e x e c s

    m t r t 7 8 1 3 0 . 9 2 3 5 0 0

    r i c h a r d s 2 4 4 4 1 . 8 2 3 2 0 0

    p o r t B O B 3 5 9 3 9 . 0 1 8 . 7 0 2

    t s g p 5 8 5 1 . 7 1 3 . 2 0 0

    j e s s 2 1 1 4 6 . 9 8 . 8 0 0

    s i 6 3 5 4 . 0 6 . 3 0 0

    d b 6 9 3 7 . 7 5 . 8 0 0

    j a c k 1 4 8 2 7 . 0 4 . 3 0 0

    m p e g a u d i o 7 3 3 1 . 5 3 . 2 0 0

    v o l a n o 3 2 9 5 3 . 8 2 . 0 0 6

    j a v a c 3 1 5 1 9 . 0 1 . 8 4 1 2 4 1 2

    c o m p r e s s 5 5 4 7 . 3 0 . 0 0 1 0 0

    T a b l e 2 . C o m p a r i s o n o f c l a s s a n d m e t h o d t e s t s f o r v i r t u a l i n l i n i n g .

    m u c h m o r e , b y s i x o r d e r s o f m a g n i t u d e . T h e i m p o r t a n c e o f t h e e c i e n c y o f

    v i r t u a l i n l i n i n g t e s t s i s m a g n i e d b y t h i s s e c o n d n u m b e r , s o w e e x p e c t t o s e e

    l a r g e r e e c t s f o r t h e p r o g r a m s a t t h e t o p o f t h i s t a b l e . S e c o n d , t h e f r a c t i o n o f

    c a l l s i t e s a t w h i c h t h e c l a s s t e s t i s u s e d i n h y b r i d m o d e v a r i e s , a v e r a g i n g a l i t t l e

    l e s s t h a n h a l f o f i n l i n e d c a l l s i t e s f o r t h e s e p r o g r a m s . T h i r d , b o t h k i n d s o f t e s t s

    a r e v e r y a c c u r a t e f o r t h e s e p r o g r a m s . T h e h y b r i d t e s t f a i l e d a h a n d f u l o f t i m e s

    i n p o r t B O B a n d v o l a n o ; t h e m e t h o d t e s t f a i l e d o n l y i n j a v a c , a n d t h e h y b r i d

    t e s t f a i l e d i d e n t i c a l l y f o r t h a t p r o g r a m .

    T a b l e 3 g i v e s t h e p e r f o r m a n c e r e s u l t s f o r t h e t h r e e c o n g u r a t i o n s . F o r e a c h

    b e n c h m a r k a n d c o n g u r a t i o n w e g i v e u s e r t i m e a n d i n s t r u c t i o n c o u n t . T h e f o r -

    m e r i s m e a s u r e d b y t h e o p e r a t i n g s y s t e m , a n d t h e l a t t e r b y a c c e s s i n g o n - c h i p

    p e r f o r m a n c e c o u n t e r s . F o r e a c h o f t h e s e m e a s u r e m e n t s , w e g i v e t h e p e r c e n t a g e

    d i e r e n c e w i t h r e s p e c t t o n o v i r t u a l i n l i n i n g f o r t h e t w o v i r t u a l i n l i n i n g m o d e s .

    F i n a l l y , w e a l s o m e a s u r e J I T c o m p i l a t i o n t i m e a n d r e s u l t i n g c o d e s i z e . W e o m i t

    c o m p i l a t i o n t i m e f o r v o l a n o , s i n c e t h e s e r v e r a n d c l i e n t p r o c e s s e s w e r e r u n n i n g

    c o n c u r r e n t l y , d i s t o r t i n g t h i s m e a s u r e m e n t . T h e u s e r t i m e m e a s u r e m e n t s s h o u l d

    b e t r e a t e d w i t h s o m e s k e p t i c i s m , s i n c e t h e y c a n v a r y s i g n i c a n t l y f r o m r u n t o

    r u n b e c a u s e o f r a n d o m f a c t o r s s u c h a s i n s t r u c t i o n c a c h e p l a c e m e n t . I n s t r u c t i o n

    c o u n t s a r e u s u a l l y , i f n o t a l w a y s , a g o o d p r e d i c t o r o f e l a p s e d t i m e , a n d h a v e t h e

    v i r t u e o f b e i n g h i g h l y r e p e a t a b l e , s o t h a t s m a l l d i e r e n c e s i n d i c a t e r e a l e e c t s .

    T h e m o s t i m p o r t a n t c o n c l u s i o n t o d r a w f r o m t a b l e 3 i s t h a t v i r t u a l i n l i n i n g

    w i t h e i t h e r a v o r o f t e s t i s s o m e t i m e s q u i t e e e c t i v e , a n d i n n o c a s e d e c r e a s e s

    p e r f o r m a n c e . A g a i n , t h e b e n c h m a r k s a r e o r d e r e d b y f r e q u e n c y o f e x e c u t i o n o f

    i n l i n e d v i r t u a l c a l l s i t e s . A s o n e m i g h t e x p e c t , t h e p e r f o r m a n c e i m p r o v e m e n t

    c o r r e l a t e s w e l l w i t h t h i s m e a s u r e . V i r t u a l i n l i n i n g a d d s s o m e c o m p i l a t i o n c o s t

    i n m o s t c a s e s , b u t n o t h i n g w e c o n s i d e r e x t r e m e . S i m i l a r l y , v i r t u a l i n l i n i n g a d d s

    a s m a l l i n c r e m e n t i n c o m p i l e d c o d e f o o t p r i n t . S i n c e t h e p r e v i o u s m e a s u r e m e n t s

    1 0

  • 8/14/2019 99 Inlining

    11/21

    b e n c h m a r k v i r t u a l u s e r t i m e p e r c e n t i n s t r u c t i o n s p e r c e n t c o m p i l a t i o n c o d e s i z e

    i n l i n i n g s e c d i . m i l l i o n s d i . m s K B y t e s

    m t r t n o n e 5 2 . 8 5 7 3 1 6 3 1 3 5 2

    m e t h o d 4 3 . 4 - 1 7 . 8 4 5 9 5 - 1 9 . 8 7 9 7 3 8 4

    h y b r i d 4 1 . 8 - 2 0 . 8 4 4 3 9 - 2 2 . 5 7 4 9 3 8 2

    r i c h a r d s n o n e 9 2 . 2 9 6 4 5 8 4 6 3 7 7

    m e t h o d 7 2 . 0 - 2 1 . 9 9 8 2 9 - 8 . 4 6 8 8 3 7 1

    h y b r i d 6 9 . 6 - 2 4 . 5 8 6 9 7 - 9 . 8 8 3 7 3 7 0

    p o r t B O B n o n e 7 6 . 5 6 1 5 6 8 9 9 5 1 0

    m e t h o d 7 6 . 9 0 . 5 6 1 2 2 - 0 . 6 9 4 6 5 1 5

    h y b r i d 7 6 . 6 0 . 1 6 0 9 3 - 1 . 0 9 3 0 5 1 4

    t s g p n o n e 2 0 9 . 2 2 9 4 0 8 4 3 4 2 4 4

    m e t h o d 2 0 8 . 4 - 0 . 4 2 9 3 0 5 - 0 . 3 4 3 2 2 4 6

    h y b r i d 2 0 8 . 1 - 0 . 5 2 9 2 7 9 - 0 . 4 4 3 5 2 4 6

    j e s s n o n e 3 9 . 1 4 0 7 2 7 5 8 4 1 0

    m e t h o d 3 6 . 4 - 6 . 9 4 0 3 4 - 0 . 9 7 6 9 4 1 6

    h y b r i d 3 6 . 3 - 7 . 2 4 0 3 1 - 1 . 0 7 6 8 4 1 6

    s i n o n e 9 3 . 0 9 8 0 5 5 1 0 2 9 0

    m e t h o d 9 0 . 1 - 3 . 1 9 7 7 6 - 0 . 3 5 1 8 2 9 1

    h y b r i d 8 9 . 5 - 3 . 8 9 7 6 4 - 0 . 4 5 1 2 2 9 0

    d b n o n e 1 4 4 . 8 8 4 7 5 4 4 9 2 6 3

    m e t h o d 1 4 2 . 3 - 1 . 7 8 4 7 3 0 . 0 4 5 3 2 6 4

    h y b r i d 1 4 1 . 8 - 2 . 1 8 4 7 3 0 . 0 4 5 4 2 6 4

    j a c k n o n e 4 0 . 9 4 1 6 1 7 9 3 4 7 0

    m e t h o d 4 1 . 5 1 . 5 4 1 4 1 - 0 . 5 8 0 0 4 7 6

    h y b r i d 4 1 . 4 1 . 2 4 1 4 1 - 0 . 5 7 9 9 4 7 6

    m p e g a u d i o n o n e 1 0 0 . 7 1 3 1 5 5 6 4 7 3 3 2

    m e t h o d 1 0 6 . 3 5 . 6 1 3 1 4 6 - 0 . 1 6 3 3 3 3 3

    h y b r i d 1 0 8 . 6 7 . 8 1 3 1 4 6 - 0 . 1 6 3 2 3 3 3

    v o l a n o n o n e 2 9 6 . 7 1 6 8 6 1 n a 7 5 6

    m e t h o d 2 9 5 . 5 - 0 . 7 1 6 8 6 1 0 . 0 n a 7 5 8

    h y b r i d 2 9 7 . 2 0 . 2 1 6 8 4 9 - 0 . 1 n a 7 5 7

    j a v a c n o n e 7 0 . 5 8 1 4 3 1 4 2 4 7 9 3

    m e t h o d 7 2 . 4 2 . 7 8 1 2 9 - 0 . 2 1 4 5 3 8 1 5

    h y b r i d 7 2 . 0 2 . 1 8 1 2 8 - 0 . 2 1 4 5 6 8 1 4

    c o m p r e s s n o n e 8 1 . 4 1 0 2 6 8 4 4 8 2 5 8

    m e t h o d 7 7 . 4 - 4 . 9 1 0 2 6 7 0 . 0 4 5 0 2 5 8

    h y b r i d 7 7 . 5 - 4 . 8 1 0 2 6 8 0 . 0 4 5 0 2 5 8

    T a b l e 3 . P e r f o r m a n c e c o m p a r i s o n o f c l a s s a n d m e t h o d t e s t s f o r v i r t u a l i n l i n i n g

    1 1

  • 8/14/2019 99 Inlining

    12/21

    i n d i c a t e d h i g h a c c u r a c y f o r b o t h t e s t s , o n e w o u l d e x p e c t t h e h y b r i d t e s t , w h i c h

    i s l e s s e x p e n s i v e w h e n t h e c l a s s t e s t i s u s e d , t o p e r f o r m b e t t e r . T h i s e x p e c t a t i o n

    i s b o r n e o u t b y t h e m e a s u r e m e n t s , b u t t h e m a g n i t u d e o f t h e d i e r e n c e i s f a i r l y

    s m a l l .

    A q u e s t i o n i s r a i s e d b y t h e s e m e a s u r e m e n t s : i f t h e h y b r i d t e s t p e r f o r m s b e t t e r

    t h a n t h e m e t h o d t e s t , i s t h e m e t h o d " p a r t a c t u a l l y r e s p o n s i b l e f o r a n y b e n e t ?

    T h a t i s , c o u l d w e g e t t h e s a m e p e r f o r m a n c e i m p r o v e m e n t s f r o m a p u r e l y c l a s s -

    t e s t - b a s e d s y s t e m ? W e c a n r u n t h e s y s t e m i n t w o c l a s s t e s t c o n g u r a t i o n s t o

    h e l p a n s w e r t h i s . I n t h e r s t , c l a s s - d e f , w e i n l i n e a l l v i r t u a l s i t e s w i t h a c l a s s

    t e s t o n t h e c l a s s t h a t d e n e s t h e m e t h o d . T h i s t e s t w i l l f a i l w h e n t h e r e c e i v e r

    c l a s s i s a s u b c l a s s o f t h e d e n i n g c l a s s . I n t h e s e c o n d , c l a s s - l e a f , w e i n l i n e t h e

    v i r t u a l s i t e w i t h a c l a s s t e s t o n l y i f t h e d e n i n g c l a s s h a s n o s u b c l a s s e s a t t h e

    t i m e o f c o m p i l a t i o n . T h i s t e s t w i l l f a i l l e s s o f t e n , b u t f e w e r s i t e s w i l l b e i n l i n e d .

    W e r u n t h e s e c o n g u r a t i o n s o n f o u r o f t h e b e n c h m a r k s : m t r t , r i c h a r d s , a n d

    p o r t B O B , b e c a u s e t h e y a r e m o s t a e c t e d b y v i r t u a l i n l i n i n g , a n d j a v a c , w h i c h

    h a d s o m e f a i l e d t e s t s . T a b l e 4 i s s i m i l a r t o t a b l e 2 . I t r e c o r d s t h e n u m b e r o f c a l l

    s i t e s i n l i n e d , t h e n u m b e r o f e x e c u t i o n s o f t h e s e c a l l s i t e s , a n d t h e p e r c e n t a g e

    o f f a i l e d t e s t s f o r e a c h c o n g u r a t i o n . W e s e e t h a t q u i t e a s u b s t a n t i a l f r a c t i o n

    o f c l a s s t e s t s f a i l w h e n t h e c l a s s - d e f c o n g u r a t i o n i s u s e d , a n d m a n y f e w e r s i t e s

    a r e i n l i n e d w h e n c l a s s - l e a f i s u s e d . F o r c o n c u r r e n t p r o g r a m s s u c h a s r i c h a r d s ,

    b e h a v i o r c a n v a r y f r o m r u n t o r u n ; f o r e x a m p l e , t h e n u m b e r o f i n l i n e d c a l l s i t e s

    d i e r s s l i g h t l y f r o m t h e n u m b e r i n t a b l e 2 .

    b e n c h m a r k i n l i n i n g i n l i n e d v i r t u a l e x e c u t i o n s f a i l e d

    m o d e c a l l s i t e s m i l l i o n s t e s t s

    m t r t c l a s s - d e f 7 8 1 2 4 3 2 7 . 1

    c l a s s - l e a f 2 4 1 7 6 . 9 0 . 0

    r i c h a r d s c l a s s - d e f 2 5 0 2 3 2 7 3 . 7

    c l a s s - l e a f 1 0 2 6 4 . 9 0 . 0

    p o r t B O B c l a s s - d e f 3 5 9 1 8 . 7 7 6 . 5

    c l a s s - l e a f 1 4 0 4 . 4 0 . 0

    j a v a c c l a s s - d e f 3 1 5 1 . 9 5 4 . 6

    c l a s s - l e a f 6 0 0 . 3 0 . 0

    T a b l e 4 . T w o c l a s s t e s t s f o r v i r t u a l i n l i n i n g .

    T a b l e 5 i s s i m i l a r t o t a b l e 3 , a n d c o m p a r e s t h e p e r f o r m a n c e o f t h e s e t w o c l a s s

    t e s t c o n g u r a t i o n s w i t h t h e b a s e l i n e o f n o v i r t u a l i n l i n i n g a t a l l . F o r m t r t , t h e

    c l a s s - d e f c o n g u r a t i o n d o e s a l m o s t a s w e l l a s t h e m e t h o d o r h y b r i d t e s t s s e e

    t a b l e 3 , b u t t h e c l a s s - l e a f c o n g u r a t i o n d o e s s u b s t a n t i a l l y w o r s e . F o r r i c h a r d s ,

    b o t h c o n g u r a t i o n s d o p o o r l y ; i n f a c t , c l a s s - d e f , b e c a u s e o f t h e h i g h f a i l u r e r a t e

    o f t h e t e s t , d o e s w o r s e i n i n s t r u c t i o n c o u n t s t h a n n o i n l i n i n g a t a l l .

    T h e s e m e a s u r e m e n t s s h o w t h a t c l a s s t e s t s c a n o b t a i n a s i g n i c a n t f r a c t i o n

    o f t h e p o t e n t i a l p e r f o r m a n c e i n c r e a s e f r o m i n l i n i n g v i r t u a l s f o r s o m e p r o g r a m s

    1 2

  • 8/14/2019 99 Inlining

    13/21

    b e n c h m a r k v i r t u a l u s e r t i m e p e r c e n t i n s t r u c t i o n s p e r c e n t

    i n l i n i n g s e c d i . m i l l i o n s d i .

    m t r t n o n e 5 2 . 6 5 6 2 6

    c l a s s - d e f 4 3 . 9 - 1 6 . 5 4 7 5 2 - 1 5 . 5

    c l a s s - l e a f 5 0 . 0 - 4 . 9 5 1 6 9 - 8 . 1

    r i c h a r d s n o n e 9 3 . 7 9 6 4 4

    c l a s s - d e f 8 8 . 3 - 5 . 8 9 7 4 1 1 . 0

    c l a s s - l e a f 8 9 . 5 - 4 . 5 9 1 8 4 - 4 . 8

    p o r t B O B n o n e 7 6 . 7 6 1 7 3

    c l a s s - d e f 7 5 . 6 - 1 . 4 6 1 6 1 - 0 . 2

    c l a s s - l e a f 7 5 . 0 - 2 . 2 6 1 0 7 - 1 . 1

    j a v a c n o n e 7 0 . 9 8 1 4 2

    c l a s s - d e f 7 2 . 3 2 . 0 8 1 4 9 0 . 1

    c l a s s - l e a f 7 1 . 1 0 . 3 8 1 4 6 0 . 0

    T a b l e 5 . P e r f o r m a n c e c o m p a r i s o n o f c l a s s t e s t s f o r v i r t u a l i n l i n i n g

    l i k e m t r t , b u t f o r o t h e r s l i k e r i c h a r d s , t h e i n a c c u r a c y o f s u c h t e s t s m a k e s

    a t l e a s t s o m e m e t h o d t e s t s n e c e s s a r y t o g e t s i g n i c a n t b e n e t .

    I t m i g h t s e e m t h a t t h e d a t a w e h a v e p r e s e n t e d a r g u e s u n e q u i v o c a l l y f o r t h e

    h y b r i d t e s t . H o w e v e r , t h a t i s n o t s o c l e a r : w h e n e v e r a c a l l s i t e i s i n l i n e d w i t h a

    c l a s s t e s t , f u t u r e c l a s s l o a d i n g m a y r e n d e r t h e t e s t i n a c c u r a t e i n c a s e s w h e r e t h e

    m e t h o d t e s t w o u l d c o n t i n u e t o e x e c u t e t h e i n l i n e d c o d e .

    4 P o s s i b l e b e n e t o f d i r e c t v i r t u a l i n l i n i n g

    T h e m e a s u r e m e n t s i n t h e l a s t s e c t i o n i n d i c a t e t h a t i n l i n i n g o f s e l e c t e d v i r t u a l

    c a l l s w i t h a m e t h o d t e s t g u a r d c a n h a v e s i g n i c a n t b e n e t s f o r s o m e p r o g r a m s .

    T h e y a l s o s u g g e s t a n e x p e r i m e n t . F o r a l l p r o g r a m s e x c e p t j a v a c , t h e m e t h o d

    t e s t n e v e r f a i l e d , s o w e a l t e r e d t h e c o m p i l e r t o d i r e c t l y i n l i n e v i r t u a l c a l l s . W h i l e

    i n c o r r e c t i n g e n e r a l , t h i s a l t e r e d c o m p i l e r p r o d u c e s c o d e t h a t e x e c u t e s c o r r e c t l y

    f o r t h e s e p r o g r a m s . T h i s e x p e r i m e n t d e t e r m i n e s a n u p p e r b o u n d o n h o w m u c h

    f u r t h e r e c i e n c y c a n b e g a i n e d b y s c h e m e s t h a t i n l i n e v i r t u a l i n v o c a t i o n s d i -

    r e c t l y . T a b l e 6 s h o w s t h e r e s u l t s o f t h i s e x p e r i m e n t , f o r t h e f o u r b e n c h m a r k s o u t

    o f t h e s e t w h e r e d i r e c t i n l i n i n g r e s u l t s i n a n o t i c e a b l e i m p r o v e m e n t . W e r a n e a c h

    b e n c h m a r k t w i c e , o n c e u s i n g t h e m e t h o d t e s t , a n d o n c e i n l i n i n g v i r t u a l c a l l s

    d i r e c t l y . F o r e a c h r u n , w e s h o w u s e r t i m e , i n s t r u c t i o n c o u n t , a n d p e r c e n t a g e

    d i e r e n c e s b e t w e e n t h e t w o r u n s .

    T h e c o m p a r i s o n i n t a b l e 6 s h o w s t h a t t h e r e a r e p r o g r a m s f o r w h i c h d i r e c t

    v i r t u a l i n l i n i n g y i e l d s s i g n i c a n t l y b e t t e r p e r f o r m a n c e . D i r e c t i n l i n i n g b o t h e l i m -

    i n a t e s t h e o v e r h e a d o f a g u a r d t e s t a n d e n a b l e s a d d i t i o n a l o p t i m i z a t i o n s b e c a u s e

    t h e i n l i n e d c o d e c a n b e a s s u m e d a l w a y s e x e c u t e d , i n s t e a d o f j u s t p o s s i b l y e x e -

    c u t e d .

    1 3

  • 8/14/2019 99 Inlining

    14/21

    b e n c h m a r k v i r t u a l u s e r t i m e p e r c e n t i n s t r u c t i o n s p e r c e n t

    i n l i n i n g s e c d i . m i l l i o n s d i .

    m t r t m e t h o d 4 3 . 7 4 6 9 3

    d i r e c t 2 7 . 5 - 3 8 . 7 2 2 8 0 - 5 1 . 4

    r i c h a r d s m e t h o d 7 1 . 4 8 8 2 9

    d i r e c t 6 2 . 1 - 1 3 . 0 6 8 3 8 - 2 2 . 6

    p o r t B O B m e t h o d 7 6 . 0 6 0 9 5

    d i r e c t 7 3 . 1 - 3 . 8 5 9 4 4 - 2 . 5

    j e s s m e t h o d 3 6 . 5 4 0 3 4

    d i r e c t 3 7 . 0 1 . 4 3 9 5 6 - 1 . 9

    T a b l e 6 . P o t e n t i a l b e n e t o f d i r e c t v i r t u a l i n l i n i n g

    5 A v o i d i n g o n - s t a c k r e p l a c e m e n t : p r e e x i s t e n c e

    S e c t i o n 4 p r e s e n t e d a n e x p e r i m e n t t h a t q u a n t i e d t h e p o t e n t i a l b e n e t s o f d i r e c t

    i n l i n i n g o f v i r t u a l c a l l s , u s i n g a s y s t e m k n o w n t o b e i n c o r r e c t i n g e n e r a l b u t s a f e l y

    a p p l i c a b l e t o t h e p a r t i c u l a r p r o g r a m s t e s t e d . I n t h e n e x t s e c t i o n s , w e d i s c u s s

    t e c h n i q u e s f o r s a f e d i r e c t i n l i n i n g o f v i r t u a l c a l l s , w i t h o u t r e q u i r i n g a n o n - s t a c k

    r e p l a c e m e n t m e c h a n i s m .

    A s s u m e t h a t w e o n l y i n l i n e v i r t u a l i n v o c a t i o n s d i r e c t l y w h e n t h e c a l l e d

    m e t h o d h a s o n l y a s i n g l e i m p l e m e n t a t i o n a t t h e t i m e o f c o m p i l a t i o n o f t h e

    c a l l e r . A s s u m e f u r t h e r t h a t w e r e c o r d a d e p e n d e n c y o f t h e c a l l e r o n t h i s s i n g l e -

    i m p l e m e n t a t i o n a s s u m p t i o n , a s i s d o n e i n S e l f . I t i s e a s y t o g u a r a n t e e t h a t a n y

    s u c h a s s u m p t i o n s m a d e b y a m e t h o d a r e t r u e o n e n t r y t o t h e m e t h o d | w e s i m p l y

    r e c o m p i l e t h e m e t h o d w i t h o u t p e r f o r m i n g t h e d i r e c t i n l i n i n g , a n d t h u s w i t h o u t

    t h e a s s u m p t i o n , b e f o r e w e a l l o w t h e a s s u m p t i o n t o b e v i o l a t e d . I n t h e c a s e

    o f d i r e c t i n l i n i n g , t h e a s s o c i a t e d s i n g l e - i m p l e m e n t a t i o n a s s u m p t i o n i s v i o l a t e d

    b y t h e l o a d i n g o f a c l a s s t h a t p r o v i d e s a s e c o n d i m p l e m e n t a t i o n o f t h e i n l i n e d

    m e t h o d . T h u s , w e a u g m e n t t h e c l a s s l o a d i n g p r o c e s s t o d e t e c t v i o l a t i o n s o f

    s i n g l e - i m p l e m e n t a t i o n a s s u m p t i o n s , a n d t o r e c o m p i l e t h e e e c t e d m e t h o d s , o r

    r e v e r t t h e m t o i n t e r p r e t a t i o n , b e f o r e m a k i n g t h e l o a d e d c l a s s a v a i l a b l e .

    T h e p r o b l e m r e m a i n s t h a t e v e n w h e n a s i n g l e - i m p l e m e n t a t i o n a s s u m p t i o n

    i s s a t i s e d o n e n t r y t o a m e t h o d , i t c o u l d b e c o m e i n v a l i d d u r i n g t h e m e t h o d ' s

    e x e c u t i o n . T h i s p r o b l e m p r o m p t e d t h e i n v e n t i o n o f o n - s t a c k r e p l a c e m e n t . N o w

    w e p r o p o s e a n a l t e r n a t i v e s o l u t i o n .

    C o n s i d e r a m e t h o d m 1 t h a t c o n t a i n s a m e t h o d i n v o c a t i o n o . m 2 . W e s a y

    t h a t t h e r e c e i v e r e x p r e s s i o n o i s p r e e x i s t i n g i n m 1 w h e n t h e o b j e c t d e n o t e d b y o

    w a s a l l o c a t e d b e f o r e e x e c u t i o n o f t h e c a l l i n g m e t h o d m 1 b e g a n . W h e n m 1 i s c l e a r

    f r o m c o n t e x t , w e w i l l s i m p l y s a y t h a t o i s p r e e x i s t i n g . B e c a u s e o i s a l l o c a t e d

    p r i o r t o t h e s t a r t o f a n e x e c u t i o n o f m 1 , t h e d y n a m i c t y p e o f o i s c l e a r l y i n t h e s e t

    S o f c l a s s e s e x t a n t i n t h e s y s t e m a t t h e s t a r t o f m 1 . I f a s i n g l e - i m p l e m e n t a t i o n

    a s s u m p t i o n a b o u t m 2 i s t r u e o v e r t h e c l a s s e s i n S , a n d t h e d y n a m i c t y p e o f o

    i s i n S , t h e n e v e n a s t h e t o t a l s e t o f c l a s s e s i n t h e s y s t e m g r o w s , t h e t y p e o f

    t h e p r e e x i s t i n g r e c e i v e r o r e m a i n s i n t h e s e t S f o r t h e d u r a t i o n o f t h e e x e c u t i o n

    1 4

  • 8/14/2019 99 Inlining

    15/21

    o f m 1 . T h u s , i f m 2 h a s a s i n g l e i m p l e m e n t a t i o n i n S , i t c a n b e i n l i n e d d i r e c t l y

    w i t h o u t a g u a r d t e s t .

    I f w e d i r e c t l y i n l i n e v i r t u a l c a l l s o n l y w h e n t h e r e c e i v e r i s p r e e x i s t i n g , t h e n

    w h e n s o m e c l a s s l o a d i n g o p e r a t i o n p r o v i d e s a s e c o n d i m p l e m e n t a t i o n o f m 2 t h a t

    n e c e s s i t a t e s a r e c o m p i l a t i o n o f m 1 , a s d e s c r i b e d a b o v e , w e c a n a l l o w a n y i n -

    p r o g r e s s i n v o c a t i o n s o f t h e o r i g i n a l c o m p i l a t i o n o f m 1 t o c o n t i n u e t o e x e c u t e t h e

    o r i g i n a l c o d e w i t h o u t r i s k i n g i n c o r r e c t b e h a v i o r .

    6 P r o v i n g p r e e x i s t e n c e

    T h e c o n c e p t o f p r e e x i s t e n c e i s u s e f u l o n l y i f i t i s p o s s i b l e t o p r o v e t h a t r e c e i v e r

    e x p r e s s i o n s d e n o t e p r e e x i s t i n g o b j e c t s a t a s i g n i c a n t f r a c t i o n o f c a l l s i t e s , a n d d o

    s o a t l o w c o s t a l w a y s a n i s s u e i n d y n a m i c c o m p i l a t i o n s y s t e m s . O u r e x p e r i e n c e

    s h o w s t h a t t h i s i s p o s s i b l e . W e p r e s e n t t w o a n a l y s e s f o r p r o v i n g p r e e x i s t e n c e .

    T h e r s t i s q u i t e s i m p l e , a n d g e t s a s u r p r i s i n g l y l a r g e f r a c t i o n o f t h e p o s s i b l e

    b e n e t . T h e s e c o n d i s m o r e c o m p l i c a t e d , a n d a d d s l i t t l e b e n e t i n t h e p r o g r a m s

    w e t r i e d ; s t i l l , i t i l l u s t r a t e s t h e g e n e r a l i t y o f t h e a p p r o a c h , a n d i t m a y b e t h a t

    o t h e r p r o g r a m s b e n e t s i g n i c a n t l y .

    6 . 1 I n v a r i a n t a r g u m e n t a n a l y s i s

    T h e r s t t e c h n i q u e , i n v a r i a n t a r g u m e n t a n a l y s i s , e x a m i n e s a m e t h o d t o i d e n t i f y

    i n p u t a r g u m e n t s t o w h i c h n o a s s i g n m e n t s a r e m a d e . C l e a r l y , s u c h c o n s t a n t a r -

    g u m e n t s r e f e r t o o b j e c t s t h a t w e r e a l l o c a t e d b e f o r e t h e m e t h o d b e g a n e x e c u t i n g ,

    i . e . , a r e p r e e x i s t i n g . A s l i g h t l y m o r e a m b i t i o u s a n a l y s i s t r a c k s t h e v a l u e s o f s u c h

    a r g u m e n t s , r a t h e r t h a n s i m p l y p a t t e r n m a t c h i n g o n t h e i r t e x t u a l o c c u r r e n c e s ,

    t o p r o v e t h a t t h e r e c e i v e r e x p r e s s i o n i n

    v o i d m 1 F o o f

    F o o f 2 ;

    f 2 = f ;

    f 2 . m 2 ; f 2 i s p r e e x i s t i n g .

    i s p r e e x i s t i n g .

    2

    I n m a n y o b j e c t - o r i e n t e d l a n g u a g e s , t h e r e c e i v e r a r g u m e n t o f a m e t h o d i s

    p a s s e d w i t h a d i e r e n t s y n t a x t h a n i s u s e d f o r o t h e r a r g u m e n t s t o t h e m e t h o d ,

    e . g . , o . m . . . i n s t e a d o f m o , . . . , a n d m e m b e r s o f t h e c u r r e n t o b j e c t m a y

    b e a c c e s s e d w i t h a s y n t a x d i e r e n t f r o m t h a t u s e d t o a c c e s s m e m b e r s o f o t h e r

    o b j e c t s . A l l s u c h s y n t a c t i c s u g a r s a r e i r r e l e v a n t t o t h i s a n a l y s i s .

    2

    N o t e t h a t t h i s o b s e r v a t i o n c o u l d b e e x t e n d e d t o t h e c l o n e o p e r a t i o n o f t h e J a v a

    p r o g r a m m i n g l a n g u a g e : i f w e c l o n e a n o b j e c t w e c a n p r o v e p r e e x i s t i n g t h r o u g h o t h e r

    m e a n s , w e o b t a i n a n o b j e c t w h i c h , w h i l e n o t p r e e x i s t i n g a s d e n e d i n t h i s p a p e r ,

    s t i l l h a s a d y n a m i c t y p e t h a t i s a m e m b e r o f t h e s e t o f c l a s s e s e x t a n t a t t h e s t a r t o f

    t h e c a l l i n g m e t h o d , w h i c h i s w h a t d i r e c t i n l i n i n g r e q u i r e s .

    1 5

  • 8/14/2019 99 Inlining

    16/21

    6 . 2 E e c t i v e n e s s o f i n v a r i a n t a r g u m e n t a n a l y s i s

    W e a u g m e n t e d t h e c o m p i l e r i n o u r s y s t e m t o p r o v e p r e e x i s t e n c e u s i n g i n v a r i a n t

    a r g u m e n t a n a l y s i s . A s b e f o r e , a v i r t u a l c a l l s i t e w i t h a s i n g l e i m p l e m e n t a t i o n m a y

    b e i n l i n e d , b u t n o w , w h e n t h e r e c e i v e r i s p r e e x i s t i n g , t h e c a l l i s i n l i n e d d i r e c t l y .

    T h e c o m p i l e r r e c o r d s a d e p e n d e n c y l i n k i n g t h e v a l i d i t y o f t h e c o m p i l e d c o d e

    t o t h e a s s u m p t i o n o f s i n g l e i m p l e m e n t a t i o n o f t h e c a l l e d m e t h o d , a s d i s c u s s e d

    p r e v i o u s l y .

    T a b l e 7 s h o w s t h e f r a c t i o n o f i n l i n e d v i r t u a l c a l l s i t e s a t w h i c h i n v a r i a n t

    a r g u m e n t a n a l y s i s p r o v e s t h e r e c e i v e r t o b e p r e e x i s t i n g , a s w e l l a s t h e n u m b e r o f

    r e c o m p i l a t i o n s c a u s e d b y d e p e n d e n c y v i o l a t i o n s o v e r t h e c o u r s e o f t h e r u n . T a b l e

    8 c o m p a r e s t h e p e r f o r m a n c e o f t h e s y s t e m u s i n g t h i s a n a l y s i s w i t h m e t h o d - t e s t

    v i r t u a l i n l i n i n g . I n b o t h t a b l e s , w e p r e s e n t r e s u l t s f o r t h e f o u r b e n c h m a r k s o f

    t a b l e 6 , t h e o n e s f o r w h i c h d i r e c t v i r t u a l i n l i n i n g h a s a p o t e n t i a l b e n e t . W e a l s o

    i n c l u d e j a v a c , w h i c h , b e c a u s e i t h a d m e t h o d t e s t f a i l u r e s , c o u l d n o t b e i n c l u d e d

    i n t a b l e 6 . F i n a l l y , t a b l e 7 i n c l u d e s a r u n o f t h e H o t J a v a

    T M

    b r o w s e r a c c e s s i n g

    t h e E C O O P h o m e p a g e . U n l i k e t h e S P E C b e n c h m a r k s , t h i s i s a n i n t e r a c t i v e

    p r o g r a m , a n d c o m p i l e s c o n s i d e r a b l y m o r e c o d e . T h e i n t e r a c t i v e n a t u r e o f t h i s

    p r o g r a m c o m p l i c a t e s p e r f o r m a n c e m e a s u r e m e n t s , b u t w e i n c l u d e i t h e r e t o s e e

    i f r e c o m p i l a t i o n w i l l b e a m o r e s i g n i c a n t i s s u e f o r i n t e r a c t i v e p r o g r a m s , w h i c h

    u s e t h e d e e p e r c l a s s h i e r a r c h i e s c o m m o n t o u s e r - i n t e r f a c e t o o l k i t s .

    b e n c h m a r k i n l i n e d v i r t u a l s i t e s w i t h p r e e x i s t i n g p e r c e n t a g e r e c o m p i l a t i o n s

    c a l l s i t e s r e c e i v e r

    m t r t 7 8 4 3 2 4 4 1 . 3 0

    r i c h a r d s 2 4 6 1 5 4 6 2 . 5 0

    p o r t B O B 3 5 9 1 6 6 4 6 . 2 0

    j e s s 2 1 1 5 4 2 5 . 6 0

    j a v a c 3 2 3 2 1 8 6 7 . 5 1

    h o t j a v a 1 5 4 8 7 2 3 4 6 . 7 4 0

    T a b l e 7 . E e c t i v e n e s s o f i n v a r i a n t a r g u m e n t a n a l y s i s , b y c a l l s i t e s

    T a b l e 7 s h o w s t h a t , f o r t h e s e p r o g r a m s , a p p r o x i m a t e l y h a l f o f v i r t u a l c a l l

    s i t e s a r e p r o v e n t o h a v e p r e e x i s t i n g r e c e i v e r s b y i n v a r i a n t a r g u m e n t a n a l y s i s .

    T h e a v e r a g e o v e r t h e c o m p l e t e b e n c h m a r k s e t i s 4 0 . 9 . T h e j a v a c b e n c h m a r k

    i s t h e o n l y S P E C b e n c h m a r k t h a t p e r f o r m s r e c o m p i l a t i o n s , a n d p e r f o r m s j u s t

    o n e . T h e H o t J a v a b r o w s e r p e r f o r m e d 4 0 r e c o m p i l a t i o n s , b u t i t c o m p i l e d 2 2 6 9

    m e t h o d s i n t o t a l , s o t h i s i s a r e l a t i v e l y s m a l l f r a c t i o n .

    A c o m p a r i s o n o f t a b l e 6 a n d t a b l e 8 s h o w s t h a t a s u r p r i s i n g l y l a r g e f r a c t i o n

    o f t h e p o t e n t i a l p e r f o r m a n c e g a i n s f r o m d i r e c t v i r t u a l i n l i n i n g c a n b e o b t a i n e d

    b y u s i n g i n v a r i a n t a r g u m e n t a n a l y s i s t o p r o v e r e c e i v e r o b j e c t p r e e x i s t e n c e . I n t h e

    c a s e o f m t r t , w e o b t a i n e d r o u g h l y a 3 0 s p e e d u p o u t o f a p o s s i b l e 5 0 . T h u s ,

    w i t h t h e c a v e a t t h a t w e a r e e x t r a p o l a t i n g f r o m a s m a l l n u m b e r o f b e n c h m a r k s ,

    1 6

  • 8/14/2019 99 Inlining

    17/21

    b e n c h m a r k v i r t u a l u s e r t i m e p e r c e n t i n s t r u c t i o n s p e r c e n t c o m p i l a t i o n c o d e s i z e

    i n l i n i n g s e c d i . m i l l i o n s d i . m s K B y t e s

    m t r t m e t h o d 4 3 . 6 4 6 9 7 8 9 3 3 8 3

    p r e e x i s t 3 2 . 2 - 2 6 . 1 3 2 2 7 - 3 1 . 3 6 8 4 3 6 4

    r i c h a r d s m e t h o d 7 2 . 0 8 8 2 9 7 9 5 3 7 1

    p r e e x i s t 6 2 . 4 - 1 3 . 3 7 2 7 9 - 1 7 . 6 6 1 9 3 6 2

    p o r t B O B m e t h o d 7 6 . 7 6 1 1 5 9 8 3 5 1 5

    p r e e x i s t 7 5 . 4 - 1 . 7 5 9 7 8 - 2 . 2 9 2 0 5 0 5

    j e s s m e t h o d 3 6 . 5 4 0 3 4 8 1 0 4 1 7

    p r e e x i s t 3 7 . 7 3 . 3 4 0 1 0 - 0 . 6 7 7 5 4 1 3

    j a v a c m e t h o d 7 2 . 2 8 1 2 9 1 4 6 1 8 1 5

    p r e e x i s t 7 2 . 6 0 . 6 8 1 1 4 - 0 . 2 1 4 6 9 8 0 1

    T a b l e 8 . P e r f o r m a n c e o f d i r e c t v i r t u a l i n l i n i n g v i a i n v a r i a n t a r g u m e n t a n a l y s i s

    i t s e e m s p o s s i b l e t o o b t a i n m a n y t h e b e n e t s o f d i r e c t v i r t u a l i n l i n i n g w i t h o u t

    m a k i n g c l o s e d - w o r l d " a s s u m p t i o n s , a n d w i t h o u t i m p l e m e n t i n g a n o n - s t a c k r e -

    p l a c e m e n t m e c h a n i s m . F u r t h e r , t h e d e p e n d e n c y m e c h a n i s m d o e s n o t s e e m t o

    t r i g g e r a n e x c e s s i v e n u m b e r o f r e c o m p i l a t i o n s .

    6 . 3 I m m u t a b l e e l d a n a l y s i s

    T o u n d e r s t a n d t h e s e c o n d t e c h n i q u e f o r p r o v i n g p r e e x i s t e n c e , c o n s i d e r a v i r t u a l

    m e t h o d i n v o c a t i o n o f t h e f o r m o . f . m . T h a t i s , t h e r e c e i v e r e x p r e s s i o n i s o f

    t h e f o r m o f , w h e r e o i s a n e x p r e s s i o n o f s t a t i c t y p e O , a n d f i s a e l d o f

    t h a t c l a s s . C a l l a e l d f i m m u t a b l e i f i t i s a s s i g n e d t o o n l y i n c o n s t r u c t o r s . I f

    f i s p r o v e n i m m u t a b l e , a n d o n e h a s a c c e s s t o a f u l l y - c o n s t r u c t e d i n s t a n c e o f a

    c l a s s i n w h i c h t h e e l d f a p p e a r s , t h e n o n e c a n a s s u m e t h a t f w i l l n o t c h a n g e

    s u b s e q u e n t l y .

    3

    C o n s e q u e n t l y , p r e e x i s t e n c e o f o f f o l l o w s f r o m p r e e x i s t e n c e o f o

    a n d i m m u t a b i l i t y o f f . W e a s s u m e t h a t o i s p r e e x i s t i n g " i s t a k e n t o m e a n

    n o t o n l y t h a t o i s a l l o c a t e d , b u t a l s o t h a t i t i s c o n s t r u c t e d | t h i s i s a n e a s y

    c o n s e q u e n c e o f t h e r u l e s o f t h e C + + a n d J a v a p r o g r a m m i n g l a n g u a g e s .

    I n o u r i m p l e m e n t a t i o n , w e a t t e m p t t o p r o v e i m m u t a b i l i t y o n l y o f p r i v a t e

    e l d s o f c l a s s e s , e l d s t h a t c a n n o t b e a c c e s s e d b y m e t h o d s o f o t h e r c l a s s e s . I n

    t h i s c a s e , t h e a n a l y s i s i s e a s y a n d e c i e n t : e a c h m e t h o d o f t h e c l a s s t h a t d e c l a r e s

    t h e p r i v a t e e l d i s s e a r c h e d f o r a s s i g n m e n t s t o t h a t e l d ; t h e e l d i s i m m u t a b l e

    i f s u c h a s s i g n m e n t s a r e f o u n d o n l y i n c o n s t r u c t o r s . A r e n e m e n t o f t h i s a n a l y s i s

    i d e n t i e s p r i v a t e m e t h o d s t h a t a r e c a l l e d o n l y f r o m c o n s t r u c t o r s , a n d t r e a t s e l d

    a s s i g n m e n t s i n s u c h m e t h o d s a s i f t h e y o c c u r i n c o n s t r u c t o r s .

    I t i s e a s y t o s e e w h y i m m u t a b l e e l d a n a l y s i s f o r n o n - p r i v a t e e l d s w o u l d

    n o t b e u s e f u l f o r p r o v i n g p r e e x i s t e n c e . T h e p r o o f t h a t t h e p r e e x i s t e n c e o f o f

    f o l l o w s f r o m t h e p r e e x i s t e n c e o f o a n d t h e i m m u t a b i l i t y o f f r e q u i r e s a p r o o f o f

    b o t h o f t h e l a t t e r p r o p e r t i e s , n o t a n a s s u m p t i o n t h a t m i g h t l a t e r b e v i o l a t e d .

    3

    A t l e a s t i n l a n g u a g e s i n w h i c h c o n s t r u c t o r s a r e e x e c u t e d o n l y o n c e o n a g i v e n o b j e c t .

    1 7

  • 8/14/2019 99 Inlining

    18/21

    I n s y s t e m s t h a t c a n n o t m a k e c l o s e d - w o r l d a s s u m p t i o n s , e v e n i f o n e e x a m i n e s a l l

    t h e c l a s s e s e x t a n t t o d e t e r m i n e t h a t a n o n - p r i v a t e e l d f i s i m m u t a b l e s o f a r , "

    a c l a s s m i g h t b e l o a d e d l a t e r t h a t w r i t e s t o f . T h u s , e v e n i f a n e x p r e s s i o n o i s

    p r e e x i s t i n g a n d a n o n - p r i v a t e e l d f i s i m m u t a b l e s o f a r , " m o d i c a t i o n s t o f

    b y m e t h o d s l o a d e d l a t e r m a y m a k e o f d e n o t e a n o n - p r e e x i s t i n g v a l u e .

    I t i s s o m e t i m e s s u g g e s t e d t h a t t h e r e e c t i o n A P I o f t h e J a v a p l a t f o r m i n v a l -

    i d a t e s t h i s a n a l y s i s , b y a l l o w i n g c l a s s e s t o m o d i f y p r i v a t e e l d s o f o t h e r c l a s s e s .

    W e b e l i e v e t h a t t h e m o s t c u r r e n t s p e c i c a t i o n o f t h e r e e c t i o n A P I a l l o w s a n

    i m p l e m e n t a t i o n t o p r e v e n t s u c h m o d i c a t i o n s b y e n f o r c i n g a c c e s s c o n s t r a i n t s .

    A n i m p l e m e n t a t i o n w h o s e c o m p i l e r u s e s i m m u t a b l e e l d a n a l y s i s w o u l d h a v e t o

    i m p l e m e n t r e e c t i o n i n t h i s m a n n e r . T h e J a v a N a t i v e I n t e r f a c e , o n t h e o t h e r

    h a n d , d o e s a l l o w s u c h u n c o n t r o l l e d u p d a t i n g . O u r v i e w i s t h a t s i n c e n a t i v e c o d e

    c a n d o a n y t h i n g , a u t h o r s o f n a t i v e c o d e a r e o n t h e i r h o n o r t o r e s p e c t a c c e s s

    c o n s t r a i n t s . E v e n i f n a t i v e c o d e r e s p e c t s p r i v a c y , t h e i n a b i l i t y t o a n a l y z e n a t i v e

    c o d e r e q u i r e s i m m u t a b l e e l d a n a l y s i s t o a s s u m e t h a t n a t i v e m e t h o d s u p d a t e a l l

    p r i v a t e e l d s o f t h e i r c l a s s .

    6 . 4 E e c t i v e n e s s o f i m m u t a b l e e l d a n a l y s i s

    W e h a v e i m p l e m e n t e d i m m u t a b l e e l d a n a l y s i s , b u t w i l l o n l y s u m m a r i z e p e r f o r -

    m a n c e r e s u l t s . T h e r e a r e a n o t i c e a b l e n u m b e r o f c a l l s i t e s a t w h i c h i m m u t a b l e

    e l d a n a l y s i s c a n p r o v e p r e e x i s t e n c e b u t i n v a r i a n t a r g u m e n t a n a l y s i s c a n n o t .

    T h e f r a c t i o n o f s u c h c a l l s i t e s v a r i e s f r o m 1 . 2 t o 2 1 . 3 o f a l l i n l i n e d v i r t u a l

    c a l l s i t e s , a v e r a g i n g 9 . 5 . H o w e v e r , t h i s i n c r e a s e i n t h e n u m b e r o f c a l l s i t e s d i -

    r e c t l y i n l i n e d d o e s n o t t r a n s l a t e , a t l e a s t f o r t h e s e b e n c h m a r k s , i n t o s i g n i c a n t l y

    b e t t e r p e r f o r m a n c e . T h e m t r t b e n c h m a r k ' s i n s t r u c t i o n c o u n t d e c r e a s e s b y 1 . 4 ,

    a n d p o r t B O B ' s b y 0 . 4 , b u t n o o t h e r b e n c h m a r k ' s p e r f o r m a n c e c h a n g e s a p -

    p r e c i a b l y . C o m p i l a t i o n t i m e d o e s n o t i n c r e a s e n o t i c e a b l y f r o m t h e c o s t o f t h e

    a n a l y s i s . D e s p i t e t h e s e s o m e w h a t d i s a p p o i n t i n g e n d - t o - e n d r e s u l t s , t h e i n c r e a s e

    i n t h e f r a c t i o n o f c a l l s i t e s i n l i n e d c a u s e s u s t o b e l i e v e t h a t i m m u t a b l e e l d a n a l -

    y s i s m a y b e i m p o r t a n t f o r s o m e p r o g r a m s ; i f i m m u t a b l e e l d a n a l y s i s e n a b l e s

    d i r e c t i n l i n i n g i n a f r e q u e n t l y - e x e c u t e d i n n e r l o o p o f s o m e p r o g r a m , i t c o u l d h a v e

    a l a r g e e e c t o n t h a t p r o g r a m .

    7 C o n c l u s i o n s a n d f u t u r e w o r k

    T h e r e a r e t w o m a i n c o n t r i b u t i o n s i n t h i s p a p e r . F i r s t , w e p r e s e n t e d a n a l t e r n a t i v e

    t e s t f o r g u a r d i n g i n l i n i n g o f v i r t u a l i n v o c a t i o n s . T h i s m e t h o d t e s t i s l e s s e c i e n t

    t h a n a c l a s s t e s t w h e n t h e r e i s o n l y o n e p o s s i b l e r e c e i v e r t y p e , b u t m o r e e c i e n t

    w h e n s e v e r a l p o s s i b l e r e c e i v e r t y p e s c a n b e c o v e r e d i n a s i n g l e t e s t . I t m a y a l s o

    b e m o r e r o b u s t t h a n c l a s s t e s t s , s i n c e a m e t h o d t e s t a l l o w s e x e c u t i o n o f i n l i n e d

    c o d e e v e n f o r r e c e i v e r t y p e s t h a t w e r e n ' t l o a d e d w h e n t h e t e s t w a s g e n e r a t e d .

    F i n a l l y , m e t h o d t e s t s m a y b e m o r e c o n v e n i e n t t o g e n e r a t e i n s o m e s o m e s y s t e m s ,

    s u c h a s j u s t - i n - t i m e c o m p i l e r s f o r J a v a v i r t u a l m a c h i n e s .

    T h e s e c o n d c o n t r i b u t i o n a l l o w s t h e d i r e c t i n l i n i n g o f s o m e v i r t u a l c a l l s w i t h -

    o u t a n o n - s t a c k r e p l a c e m e n t m e c h a n i s m . T h e s c h e m e r e s t r i c t s d i r e c t i n l i n i n g

    1 8

  • 8/14/2019 99 Inlining

    19/21

    t o c a l l s i t e s w h o s e r e c e i v e r s h a v e a p r e e x i s t e n c e p r o p e r t y , a n d r e c o r d s s i n g l e -

    i m p l e m e n t a t i o n a s s u m p t i o n s o n w h i c h c o r r e c t n e s s o f t h e i n l i n i n g d e p e n d s . C a l l e r s

    m u s t b e r e c o m p i l e d w h e n t h e s e a s s u m p t i o n s a r e i n v a l i d a t e d , b u t c u r r e n t l y -

    e x e c u t i n g i n v o c a t i o n s o f s u c h c a l l e r s m a y c o n t i n u e , b y v i r t u e o f t h e p r e e x i s t e n c e

    r e s t r i c t i o n . W e d e s c r i b e d t w o a n a l y s e s , w i t h d i e r e n t c o s t p r e c i s i o n t r a d e o s ,

    t h a t p r o v e p r e e x i s t e n c e .

    W e p r e s e n t e d s e v e r a l m e a s u r e m e n t s . E v e n t h o u g h t h e b a s e s y s t e m a g a i n s t

    w h i c h c o m p a r i s o n s w e r e m a d e i n c l u d e d a n i n l i n e c a c h e m e c h a n i s m t o s p e e d

    u p v i r t u a l c a l l s , i n l i n i n g o f v i r t u a l s w i t h a m e t h o d t e s t g u a r d o e r s s i g n i c a n t

    i m p r o v e m e n t s f o r p r o g r a m s t h a t e x e c u t e i n l i n e d v i r t u a l c a l l s f r e q u e n t l y . W e d e -

    t e r m i n e d a n u p p e r b o u n d o n t h e s p e e d u p a v a i l a b l e b y i n l i n i n g a l l e l i g i b l e v i r -

    t u a l c a l l s d i r e c t l y . O u r s i m p l e s t a n a l y s i s , i n v a r i a n t a r g u m e n t a n a l y s i s , a l l o w e d

    s u c i e n t d i r e c t i n l i n i n g t o r e a l i z e a l a r g e f r a c t i o n o f t h i s p o t e n t i a l s p e e d u p . I m -

    m u t a b l e e l d a n a l y s i s i n c r e a s e d t h e f r a c t i o n o f c a l l s i t e s i n l i n e d d i r e c t l y , b u t d i d

    n o t i m p r o v e t h e o v e r a l l p e r f o r m a n c e s i g n i c a n t l y f o r t h e p r o g r a m s m e a s u r e d .

    I n f u t u r e w o r k , w e h o p e t o e l i m i n a t e s o m e o f t h e r e s t r i c t i o n s o u r c o m p i l e r

    i m p o s e s o n w h a t m a y b e i n l i n e d . T h e r e s u l t i n g i n c r e a s e i n i n l i n i n g o p p o r t u n i t i e s

    m a y e x t e n d t h e b e n e t s o f v i r t u a l i n l i n i n g t o m o r e p r o g r a m s . W e a l s o h o p e t o

    i n v e s t i g a t e t h e a p p l i c a t i o n o f p r e e x i s t e n c e t o o t h e r a s s u m p t i o n s t h a t c o m p i l e r s

    m a y m a k e t o e n a b l e o p t i m i z a t i o n s .

    A c k n o w l e d g m e n t s . W e w o u l d l i k e t o t h a n k C h r i s t i n e F l o o d a n d S t e v e

    H e l l e r f o r c a r e f u l r e a d i n g s o f t h e p a p e r . C r a i g C h a m b e r s a n d J e D e a n h e l p e d

    c l a r i f y t h e r e l a t i o n s h i p b e t w e e n t h e i r w o r k a n d o u r ' s . T h a n k s a l s o t o t h e a n o n y -

    m o u s r e f e r e e s f o r h e l p f u l c o m m e n t s .

    1 C r a i g C h a m b e r s , D a v i d G r o v e , G r e g D e F o u w , a n d J e r e y D e a n . C a l l

    g r a p h c o n s t r u c t i o n i n o b j e c t - o r i e n t e d l a n g u a g e s . A C M S I G P L A N N o t i c e s ,

    3 2 1 0 : 1 0 8 1 2 4 , O c t o b e r 1 9 9 7 .

    2 C r a i g C h a m b e r s a n d D a v i d U n g a r . C u s t o m i z a t i o n : O p t i m i z i n g c o m p i l e r

    t e c h n o l o g y f o r S E L F , a d y n a m i c a l l y - t y p e d o b j e c t - o r i e n t e d p r o g r a m m i n g

    l a n g u a g e . I n B r u c e K n o b e , e d i t o r , P r o c e e d i n g s o f t h e S I G P L A N 1 9 8 9 C o n -

    f e r e n c e o n P r o g r a m m i n g L a n g u a g e D e s i g n a n d I m p l e m e n t a t i o n , p a g e s 1 4 6

    1 6 0 , P o r t l a n d , O R , U S A , J u n e 1 9 8 9 . A C M P r e s s .

    3 O l e - J o h a n D a h l , B j r n M y r h a u g , a n d K r i s t e n N y g a a r d . S i m u l a c o m m o n

    b a s e l a n g u a g e . T e c h n i c a l R e p o r t S - 2 2 , N o r w e g i a n C o m p u t i n g C e n t e r , O s l o ,

    N o r w a y , 1 9 7 0 .

    4 J e r e y D e a n . W h o l e - P r o g r a m O p t i m i z a t i o n o f O b j e c t - O r i e n t e d L a n g u a g e s

    P h D t h e s i s , U n i v e r s i t y o f W a s h i n g t o n , S e a t t l e , W a s h i n g t o n , 1 9 9 6 .

    5 J e r e y D e a n , C r a i g C h a m b e r s , a n d D a v i d G r o v e . S e l e c t i v e s p e c i a l i z a t i o n

    f o r o b j e c t - o r i e n t e d l a n g u a g e s . A C M S I G P L A N N o t i c e s , 3 0 6 : 9 3 1 0 2 , J u n e

    1 9 9 5 .

    6 J e r e y D e a n , G r e g D e F o u w , D a v i d G r o v e , V a s s i l y L i v i n o v , a n d C r a i g C h a m -

    b e r s . V o r t e x : a n o p t i m i z i n g c o m p i l e r f o r o b j e c t - o r i e n t e d l a n g u a g e s . A C M

    S I G P L A N N o t i c e s , 3 1 1 0 : 8 3 1 0 0 , O c t o b e r 1 9 9 6 .

    7 J e r e y D e a n , D a v i d G r o v e , a n d C r a i g C h a m b e r s . O p t i m i z a t i o n o f o b j e c t -

    o r i e n t e d p r o g r a m s u s i n g s t a t i c c l a s s h i e r a r c h y a n a l y s i s . I n W a l t e r G . O l t h o ,

    1 9

  • 8/14/2019 99 Inlining

    20/21

    e d i t o r , P r o c e e d i n g s o f t h e N i n t h E u r o p e a n C o n f e r e n c e o n O b j e c t - O r i e n t e d

    P r o g r a m m i n g , v o l u m e 9 5 2 o f L e c t u r e N o t e s i n C o m p u t e r S c i e n c e , p a g e s 7 7

    1 0 1 ,

    A r h u s , D e n m a r k , 7 1 1 A u g u s t 1 9 9 5 . S p r i n g e r - V e r l a g .

    8 L . P e t e r D e u t s c h a n d A l l a n S c h i m a n . E c i e n t i m p l e m e n t a t i o n o f a

    S m a l l t a l k - 8 0 s y s t e m . I n P r o c e e d i n g s o f t h e 1 1 t h S y m p o s i u m o n t h e P r i n c i -

    p l e s o f P r o g r a m m i n g L a n g u a g e s , p a g e s 2 9 7 3 0 2 , S a l t L a k e C i t y , 1 9 8 4 . A C M

    S I G P L A N .

    9 A m e r D i w a n , J . E l i o t B . M o s s , a n d K a t h r y n S . M c K i n l e y . S i m p l e a n d e f -

    f e c t i v e a n a l y s i s o f s t a t i c a l l y - t y p e d o b j e c t - o r i e n t e d p r o g r a m s . I n P r o c e e d i n g s

    o f t h e 1 9 9 6 C o n f e r e n c e o n O b j e c t - O r i e n t e d P r o g r a m s , S y s t e m s , L a n g u a g e s ,

    a n d A p p l i c a t i o n s , p a g e s 2 9 2 3 0 5 . A C M S I G P L A N , O c t o b e r 1 9 9 6 .

    1 0 K a r e l D r i e s e n a n d U r s H o l z l e . A c c u r a t e i n d i r e c t b r a n c h p r e d i c t i o n . I n

    P r o c e e d i n g s o f t h e 2 5 t h A n n u a l I n t e r n a t i o n a l S y m p o s i u m o n C o m p u t e r A r -

    c h i t e c t u r e I S C A - 9 8 , v o l u m e 2 6 , 3 o f A C M C o m p u t e r A r c h i t e c t u r e N e w s ,

    p a g e s 1 6 7 1 7 8 , N e w Y o r k , J u n e 2 7 J u l y 1 1 9 9 8 . A C M P r e s s .

    1 1 N e a l F e i n b e r g , S o n y a E . K e e n e , R o b e r t O . M a t h e w s , a n d P . T u c k e r W i t h -

    i n g t o n . T h e D y l a n P r o g r a m m i n g B o o k . A d d i s o n - W e s l e y L o n g m a n , R e a d i n g ,

    M a s s . , 1 9 9 7 .

    1 2 M a r y F . F e r n a n d e z . S i m p l e a n d e e c t i v e l i n k - t i m e o p t i m i z a t i o n o f M o d u l a - 3

    p r o g r a m s . A C M S I G P L A N N o t i c e s , 3 0 6 : 1 0 3 1 1 5 , J u n e 1 9 9 5 .

    1 3 R i c h a r d G a b r i e l , J o n W h i t e , a n d D a n i e l B o b r o w . C L O S : I n t e g r a t i n g o b j e c t -

    o r i e n t e d a n d f u n c t i o n a l p r o g r a m m i n g . C A C M : C o m m u n i c a t i o n s o f t h e

    A C M , 3 4 , 1 9 9 1 .

    1 4 A d e l e G o l d b e r g a n d D a v i d R o b s o n . S m a l l t a l k - 8 0 : T h e L a n g u a g e a n d i t s

    I m p l e m e n t a t i o n . A d d i s o n - W e s l e y , R e a d i n g , M A , 1 9 8 3 .

    1 5 J a m e s G o s l i n g , B i l l J o y , a n d G u y S t e e l e . T h e J a v a

    T M

    L a n g u a g e S p e c i c a -

    t i o n . T h e J a v a S e r i e s . A d d i s o n - W e s l e y , 1 . 0 e d i t i o n , A u g u s t 1 9 9 6 .

    1 6 U r s H o l z l e . A d a p t i v e o p t i m i z a t i o n f o r S E L F : R e c o n c i l i n g h i g h p e r f o r m a n c e

    w i t h e x p l o r a t o r y p r o g r a m m i n g . P h . D . T h e s i s C S - T R - 9 4 - 1 5 2 0 , S t a n f o r d

    U n i v e r s i t y , D e p a r t m e n t o f C o m p u t e r S c i e n c e , A u g u s t 1 9 9 4 .

    1 7 U r s H o l z l e , C r a i g C h a m b e r s , a n d D a v i d U n g a r . O p t i m i z i n g d y n a m i c a l l y -

    t y p e d o b j e c t - o r i e n t e d l a n g u a g e s w i t h p o l y m o r p h i c i n l i n e c a c h e s . I n P . A m e r -

    i c a , e d i t o r , P r o c e e d i n g s o f t h e 1 9 9 1 E u r o p e a n C o n f e r e n c e o n O b j e c t - o r i e n t e d

    P r o g r a m m i n g , L N C S 5 1 2 , p a g e s 2 1 3 8 , G e n e v a , S w i t z e r l a n d , J u l y 1 9 9 1 .

    S p r i n g e r - V e r l a g .

    1 8 U r s H o l z l e , C r a i g C h a m b e r s , a n d D a v i d U n g a r . D e b u g g i n g o p t i m i z e d c o d e

    w i t h d y n a m i c d e o p t i m i z a t i o n . I n C h r i s t o p h e r W . F r a s e r , e d i t o r , P r o c e e d i n g s

    o f t h e A C M S I G P L A N ' 9 2 C o n f e r e n c e o n P r o g r a m m i n g L a n g u a g e D e s i g n

    a n d I m p l e m e n t a t i o n , p a g e s 3 2 4 3 , S a n F r a n c i s c o , C A , J u n e 1 9 9 2 . A C M

    P r e s s .

    1 9 T i m L i n d h o l m a n d F r a n k Y e l l i n . T h e J a v a V i r t u a l M a c h i n e S p e c i c a t i o n

    T h e J a v a S e r i e s . A d d i s o n - W e s l e y , 1 9 9 6 .

    2 0 V o l a n o L L C . V o l a n o m a r k b e n c h m a r k .

    h t t p : w w w . v o l a n o . c o m b e n c h m a r k s . h t