HAL Id: inria-00073789
https://hal.inria.fr/inria-00073789
Submitted on 24 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub-
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non,
A Uniform and Automatic Approach to Copy Elimination in System Extensions via Program
Specialization
Eugen-Nicolae Volanschi, Gilles Muller, Charles Consel, Luke Hornof, Jacques Noyé, Calton Pu
To cite this version:
Eugen-Nicolae Volanschi, Gilles Muller, Charles Consel, Luke Hornof, Jacques Noyé, et al.. A Uniform and Automatic Approach to Copy Elimination in System Extensions via Program Specialization.
[Research Report] RR-2903, INRIA. 1996. �inria-00073789�
a p p o r t
d e r e c h e r c h e
A Uniform and Automatic Approach to Copy Elimination in System Extensions via Program
Specialization
Eugen-Nicolae Volanschi, Gilles Muller, Charles Consel, Luke Hornof, Jacques Noyé & Calton Pu
N˚ 2903
Juin 1996
THÈME 2
/=3>? )6@?-6
A-B#CEDGFIHKJMLONQPEROSTDVU PEROSWFYX,N[Z#L]\^ML_R`R_DTXabB#R_R`DGcd\#e ZSWcfR`DTXe PgFXDGR]\hBijDlkMPgcfF#PWmf\
njSgNGojB#DTXJMPTprqDlsterSTR`ufPgF;v-Bw
x?yjz
{|M{~}={6T {~ Q {
{6?f[ TIG|g dW{
#
,]{>j~-
TE
T{
{
y { y
{8 d}Q ¡ ¢¤£ W¥§¦f Q ¨} ¢E[Q{
©ªY«6¬,[®E¯[¬Q°²±
Q>QE{
[³ TG³{|
y
{f,´G¥
{ µQ¥G³{
|M{T¶[³{>E·
T6
{-¸_
|GG¹
T¶
Or
g
·T ¥ O
{fQTfº x?y
»EE{
{¼G³{TT
Q
|&g{¶[ ½f[³ ³ { | E{
y
{³{
G{
|{W¾{E[]-
T6
{? ¿TTÀ¸_
|Á|µ[WT{
ºIÂ>
[Tø_
|µ[³
G{? I¸_T [T³[¹
|[ »T #E[³{ >³E{6¶[ ½{
¸_
Ä
Q
|,Åfg[|{6
x
{|gEº x?y
{?ÆQ{r[W´ [G· {¸E
T
G[
y
y
[
y
{?T{
{{[¸j·,¸`{Or¸Ç
y
{>³
{>
|È #
{³{
´Q{Gr
y
{? T³ | ½f[³ 2º
~
{³T fÅg|µ
{>G³{|8GT{ fE{
{T³{lÉ?
y
QT
{6dW
T¿TT QE[g´ {
ÀÊEf[³ 2º
Â
{ | E
{6T =
y
{µ[W |[³¥,[ T³¥|M ½{
>Ä
GT{µ
{´ {
=
Q| T
=
y
~
y
{Ë
{ T{G f³
y {
{³T É{ T][ T{=Gµ|[GE2g{¶¥ ½f V[¸»
y
{·|{
GT{Qº?ÌO
y
?¶[³>{¼Gg{
|{6d,ÅGE{
¸_
|µT{ |M{f[³
{6|{G[¸
y
{g{¶[ ½{
Ä
¸
|{6d³
y
[É?~| T |µ,Wg{{TTV[¸Y¢Q¡ Í&6 |g
{6µ³r
y
{ TQG¹Og{¶[ ½{GT{ º
Y¥ |M¥g[ [[¸E G{
|{W¾{#E·
T³
{6» 2g
#¸ÎQ
#
{³{f
y
{]ÏÇ
³[ÉÐ
TI T³ | ½]¹
TM g{
TG³{|Ñ6 |g W{G>´G¶
|Òg{¶[ ½f[³ 2º-ÌO¥|M
[´Q{>Ql
{´G T
É
Æ
y
? T³¥|M ½f[³¥QT»
{ T[É5f
³
{lQT>[T³ |[ f ¥T TQ
g{¶[ ½f GQÓº
Ô y {
|
{ ÅQ¥Õ
y
[É?
y
[ÉÖQ{T{
>WTG³{|fE{-[T³ |µ f¥ g{¶[ ½{M¥G³~³E{6ÀÊE
³d³{|Ò{6¼d³{T³¥QT>GM{¼GT TrTT f[³ 6 T³
d³fº
×MØGÙgÚ·Û Üg Ý#«[°"#
[|Ò³E{6¾ ¥½,[ Q2ÅgE
¶[I{´ [ E 2ÅW G{ | E 2ÅQ{¼G{6T T { G¹
{
[³¥WG³{|,Å
{6| ³{>
G{T
{r,[
Þ ßà
áÃâOãfä
à
áÕåæ âOç`èé
êjë[ìîí ï`ðí`ðñï`òOëìîí í`ó[ô[ô õ6ï_ö`ð÷Mìîølô[ñï`ö~ù,úû[ï_ñ6ø[òð êGðüîð³òõý>þ6ÿgê ï`ñø,ö! -ñø[÷
ò³õøfö`ï`ñòögû"#! $&%'(#ÿ,û)ï`ñøfö%%*!##((!+ ·ñ6ø[÷,¶ø,ö_ð³ü.-
/0Iï_ð$õø1#ï`ñ÷[ó[ñö`ð ,¶ø[í`ö`ìîö_ó[ö`ðjõ2Eÿ,òìîð³ø[òðjñø[÷êdð³òOë[ø[õüîõú
á43¶ä65798å
òñüîö`õø;:Iòí`ð-õ6ì.-ð÷,ó
3>18?µ63>18µ¿18)31Ò3?43161812'1I3- 3>1&-
1 3>? )61#-"µ3§Mr<¤ 3>1
ØÎ«Ø°
IT TE
T{ÕG
z
{|{Õ{¼GT · W ¥³{G#¥G³{T ´Q{|{GIT{³
W
{?T{
TQT?{{6~ G{
| {6T¶[
{?,ÊglT{-|{³
{ {-T´
{¥{6?
Q
,{T{-T{ g
][T T{{>|MdWT¶
T{ º
Ä
{
{
g ³{»WT{»{6¼d³{T³¥Q
z
¶ ?{6¾ ¥][³¥Q-T{»
||{6TEQ
{ | T{
T{|µ[W
z
{ {
TW¸`
|M{ { QT { G{
| {W¾
{,º>Q
{
G{³TT{
TO¸_
|[ Qµ{6[T³ |µ GT{-{
{EQ{l³
T ³Ð{¶[ {6
T{
||{6
Ä
TE{6f{ x
{|MEgºlî,´ [G· {|µK{
T{MT
{
T
G
y
{={MGT{l {T{
{ËW{l
{T{=T
||{³
{l{³
{³{
´{ E
{l
G{6W
QT | ][ Q2º# QTT{6dW{T{ ÅÕ »T{6´d {G g ³ T {W{
{T³ ¥ ³{
W GT{³d³
z
{|M{|[
{
][T|{³
{-{-T´
{T{>´{
ÀÊEf[³ T>TT WT{ {fº
{T ][?
{ | E
{³ G?
z
{>
|M{³{
2 {-
dWT ?T{-QT | ][ [[T³ |,¹
³¥GT{?W{¸
|{6d³2T{?6dW{>T{?î[Tg{GT{?
GÇ{T
{ z
>W¥³·T{?{³»³¥|M ¾
{[GT{??{¶[ T{
|[GT{ {|{6d,º
{³{r{6¼d?{
|{6d][³¥Q2ÅG {>|M{
{T{ g{
¸_
|[T{-³
¥{-GT{?{6¾+¹
T{-T
>Ä
|Qd
{GTG[ |M T |rT|;W{¢Q¡ Í&{6µ³{|W»{¼{6T E
?
TE
>GT{
TQ?{6¾ ¥T{ º
{ ¥|M E[³ VT{
T³
{MT{W T?{6{r G{
| {6T¶[
{ d
z
{
{ETT
{µ¼G{T{
{]¹
y { y { {¶[³¸ z
QT |M¥][³¥QrW{~6 |g ][GT{ ³G
z
{6|{?{¼GT Q¥][³¥QE
?{6¶[ ·[³
T{
[|M|{ º
Ä
{³{ {TW{r{
y
~W >
,´ T¼
{j{T{GET>¶|M{
{ l {
G{6W
QT | ][ Qr{³>|[ G{EG
{f ¥T{ [T³ |µ GT{|M{Gg
TQ
{ T³¥gT{ ³?{¶¥ ][ Q2º
bÜg¬+«KÚK¯ Ø °"!
Ð{¶[ · MT{
[|M|{ ÅÕ{´ ¥g[ Qµg
³ { ¥{QÅ?{ | E T{ QT {fÅg³dù
z
{|{?#{6¼dW¥Q ·[³ {¼G{6T T { Åj[WE{jW{
Gj{6T
{ z
T ·T{
4 5 2V
! {
´G {>ÏÇ{
{G g{
TG³{|?
{-dE
{~Q{T{
[Oº#>?W{É*[WT ¥,[ QT»[W
y
G¹
É?
{ T¶[ø_
|{|{
{ ÅW
y
? T
{f[³ TQ{T{
[ Og{E[ ½{E{
¸_
|µT{ º x?y
?Q6E E{ù
É{{ Q{T{
[ OË[TVE{
¸_
|µT{¥-
y
{E[³ >[¸?{6´ {
[
{{f
y
f]{6 É
y
¥
y
{[ |{
rT{6 T T= g{
[ T=G³{|MrÉ
y
y
f E[W =T· {ME[³{
T³l
{f[³E{6Êglf[³{
{76¥{6d³ 98 ¦[ÅE}WÅT¢TÅ:.;º
x?y
¥E[g{
{6¼dW¥
{ T{É [T
d
y
¸_
TQ|µ[³ f[ rQ{T{
[³¥Wµ³G{6|²{6¼d³{T³¥QT-
y
{ G{6¼d¸~{¼G³{T T {lQE{
[³ T˳G{6|fº Â
|µ[ QG
TW ¥=
[´d T{=ÉÐ,
¸»E{
¸_
| T
| ³E{6¾ ¥½,[ Ql[¸ {6T{
G³{|¾,Q{
{¼GT T
y
{T· { E³{
¸=g
³ T¶
TT f[³¥Q2º x?y
[W
G[
y
¥³T { ¸_
f{MÉ y {
{Ë G¸_
|[ QËf E{
{¼G
[6{¸
Q|;
y
{?T³{
TT f[³¥Q-¥[WT -- G¸_
|[ Q> ´Q{rG-WTG³{|,º=<»{6f[T³{
³T
y
¥Î¸_
|µ[³ ´
{?¸
|ÒQT{¿TT f[³ [TQ
y {
Åj
y
{r³E{6¾ ¥½,[ Qµ
G{³r >W{
{E{,[{6T >#
y
>|[Æ {6> [W |[³¥QµT{{³ O=¥=
y
{r³E{6¾ ¥½,[ Ql[¸»¶
{
dWT Q
GT{ ³T
y
QE{
[³¥W G³{|Mfº&ÑOGT f-{¼T[|W¥{¸
y
E G
l
{|Q{
#
G{T
{ Ä
[ @?
>Ä)A
ÅTÉ y {
{ QG{¼G> G¸`
|[³¥QB?
/'CD*C
ÅW
G{6T
{ QE[³
{
A
?
[´d T{6
GÖÖTT f[³¥Q [T T³{ GÖVG ?
/'C2*+C
ÅÕW |MT {
A
Q{T{
[{Vg{¶[ ½{ GT{
TTT T?T{
{´ {Oº
Â
[ET·
G{6 E[³{ b=g{¶[ ½{
¸_
Ä
Q
[|,ÅE|{
x
{|MEE8GFH;ú
x
{|ME-[
{³ ´ {6¥E{
¸_
|I´
QT#
Q
|;
[Tø_
|µ[³ TIT
y
[{ | E [¸EWdW{
GT{>T´
¶T {fÅ[[Wr
G{T
{>Tθ_ T TgºÇ Æ {?[G- T³¥|M ½{
Å,À¸E 2 #{6|µ[G³¥Õ
{³{
´G TgÅ
y
{r³E{6¶[ ½{
É? ¥I
GTW{ T³ | ½{MGT{r
y
[-flg{r
T³{I?¸
y
{rW G¹Og{¶[ ½{= W{
A º
JLK [Ø `ØMG®$N¯[ØPO !
dG
y
{ ¼jÅ>T*
y { !
Gd
y
{³¥ÆQ{
T{68î¨H;ÃÅ
y
,´ {lW{|QT
[³{ ³¥QTÀÊEfd
g ³{G¶[#d T-[¸»³E{6¾ ¥½,[ Ql l g{
TMG³{|,ºQ>[É{´Q{
Åjg y y { !
Gd
y
{³¥-ÆQ{
T{6
T
!
GG
y
{6 ¼{¼Gg{
|M{G>WlT[É
y
,´Q{~g{{=TQT{ G
y
T2º?Â
{6¼dg{
¥{6T{É?¥
y y
{³{
{¼Gg{
|M{G?
y
[É??
y
?¥M
T{
,[ {-T
y
{-{¼Gg{
|{6d³>[T[TW¥³E{6¶[ ½f[³¥Q³¿
{G³
{r
GTT³ = g{
TG³{|=ÅEÉ{T{{=E[É{
¸_T2³G >³µ[W |[³{~
y
{ ³E{6¾ ¥½,[ Q
G{,º x?y
- >E
W¾
y
{,[{¸`
GTT³ =GT{É?
y
³¥|W¥][T{6 T
{GT
{6|{G
¸Yg{
¸_
|µ[W{ ÅG
{6T{6fÅ |GTT¶
OdÅ TE
][T Odº
b
¥³ f[j ³T{
y
{
?[¸QE{
[³ Tr³G{6|Ò T³¥|M ½f[³¥Q >,´ Q¥W¥W~
y
G³¥,[j|{6|
QGdº
±
G˳{
y
T GT{
y
,´ {g{{ ¥G
GTT{6 y
{M¶[ÊT¸_{6{ Q{f
lQT |M¥½6{r³d³{|
³
W
TdM{ | E[³ T- T {8GRGÅTSTÅg GÅ2¦,¡TÅ2¦Q¦U;º
± {
T³d³{|Ò¶,Q{
?³ {6
y {
ÏÇ{
~
QTE
³TT O
{|M[´ { d³{
|M{T¶[³{?E[] ³
T
{É
y
y
{>T
|µ ¥-T{6{T{¸`
|MdWT¶,¹
¥O
{f[³ T,ºQ[É»{´Q{
ÅG6 G{ | E[³ E{Q TM G´Q{G EE
| ³E{6¶[ ½f[³¥QV>G
y
¥
QT | ½f
{GT
{-[TW¥³ EE
[WO¸_
|µ Wfº
W-ÜTNI¬f.X`ª#¬'X¶ÜPN«OÒx
{|g |T {|M{G
{T{
[[T
d
y
µTQ|µ{-G³{|ÑQT |M¥½,,¹
³¥QTfº x?y
{ G
TT³¥QT[¸
y
?EE{
f[g{ T|M|µ
½{¸_ [É?fº
Y[Z { y
,´ {lW{´ { QE{b=T{ÉÑ[W
G[
y
6 |T T TËT ³E{6¾ ¥½6¥W {¼G¥³ T ³d³{|
¶, {
?T T
[|
TO¸`
|[³¥Q2º
: Y x
µ[
y
{´Q{r
y
-¥G³{
[ Q˸»¶, {
fÅjÉ{r G
GTT{T{É&{
y
W¥GT{{ | E{-|{K¹
|
- GG W
T³¥W¿¿T
[6 G
y
³
[Wr{ | E T d³{
|M{T¶[³{»g[·
T³
{6fº
J¬ XN#ØPOÒx?y
{ {¸>
y
{ME[g{
¥
dT ½{Ö-¸_Q¥ [É?,º
!
{³¥QÖ}W{
E{M
y { x
{|g
³E{6¾ ¥½6{
[W y {=|{
T ¸r{¼G ³¥W G³{| ¾,Q{
M * ³E{6¾ ¥½6{*³G{6|{6¼d³{T³¥Q2º
!
{6 ¢ G
GTT{
y
{ G { | E [l³{
y
T GT{l[T ¥³r G{6
G
x
{6|gT>#
y
¥
³{
y
T GT{? 2Ê
Õ¥ T³
{Gr[W |[³¥#³E{6¾ ¥½,[ Qr¸Ç
³d6 T³·[]Æ ¶,Q{
#É
y
y
|M |
Ä
>G
y
{62ÅGÉ»{
{6{G>
{ | E
{T ³?¥TT G T
³{
y
T GT{¸_
QT |M¥½6¥W
Ä
y { Äy
T
Ä
¶[³*QE{
[³ Tr³G{6|˺
!
{6 :
{³{G
{6¾{É
Æ¥M
y
{-³E{6¾ ¥½,[ Q
¸YQE{
[³ Tr³G{6|fº
Ô
¥g[ dÅ
!
{ Q FQ ´ {?QT TT T
{6|µ
ÆGfº
?'r3 5
3< -#"7¤9b-#)Ö(57~),-
x?y
{?6 6E ÕE{OÉ{{M|GTT¶
O>[Tg{
¸_
|[T{? #T[É >É{ À¹Ó T{6d³ÀÊE{
T {|Á r³d³{|
³[¸_OÉ?
{T{´ {6¥QT|{6d,º
±
dWT¶
Ol =G³{|GT{
y
[|µ[Gl[W´ [G· {-W
y
[ |[ G·¹
ET ¥OGÅ
{K¹ÓT][T OdÅT {W{
¥ OGº Q[É»{6´ {
Å?
y
{6{ËT´ [G· {Q|{µ
y
{V{¼GE{W{l¸
g{
¸`
|[T6{µÀ¸-
y
{|GTW¾
T{³ r|[Tg{ W
{³¥ |T {|M{G· [2º=ÌOTT{{62Å¥
¸_{ G
dWT{ |M{>[´Q{
y
{,[TT{-QE{
[³ T?³T
y
?
Q{6 TQ|µ[
Q³¥WEÅTg[·
QGd T=[T=¸_
|[>
T¶[³ g{OÉ»{6{ ¾,Q{
,ÅT
y
{f,´G Ëg
|{³{
½{6 ¥G³{
¸Ó{¸`TT]¹
³¥QTfº
[
y {
ÅQ|GTW¾
T{6 M
y
QT E{
y
{?E [¸2-³{GÉ?¥³{
{]ÊEW{|{G
G{³? T{
´ {
µ |MT {|{G][ [2Å¥W{,[[¸#E{ TW
{³¥M|µTE{6¥|MT {|{6d][³ Iº
Z {-¶¥| y
>
y
¥
{]ÊgT{|{6d
G{6-f[VE{[
y
{´Q{lG
[|8g{¶¥ ½f Iº x?y
¥
TQ|µ[³
TO¸_
|[ Q~
G{³»fr6 ¶[T³{|GTT {IG~³T
y
[Tø_
|µ[³ T2
{|[´G T
E
|{³{
½f l¸» G{
¸Ó[{¸_TW WTl
Ed T6 T³·[G³fº ÌOV
y
-{6 =É»{Ê
Q¥´Q{µ [´ {
´d {É [¸~
[|³E{6¾ ¥½,[ Q G³{|ËÅ#E|{
x
{|ME 8GFH;º x?y
{62ÅÉ{µ
W{
y
[Q
T
G[
y
T{´ {6¥QT T
x
{|g>|[Æ {6 #E
W¾
É{ À¹Ó³T {³ T³ | ½{³d³{|
GT{Qº
Ô
E[ dÅQÉ{~W¥³T³
y
[É y {-¸_{,[
{-[¸
x
{|gr
{-{¼GT {6µ³ ¶[W{-¶, {
fº
"!$#%'&(!*),+$-/.0!132+
x
{|MEl l
|
[Tø_
|µ[³ G³{|§E[³{
Q
|g{¶¥ ½f 8 ¦f}GŦf¢;º ÌO
][Æ {6µ=Q
6{Ë
[|§É
³{
Ä
[T E
M[¸ M¥WTTfÅ?T
GTT6{l=g{¶[ ½{
[|=º x?y
Q
| ³E{6¶[ ½{
[Ïg¹Ó T{ 8 ¦f}GÅ2¦,¢H; l
y
[? >
G{³{r
| OÉ»
³{T T
T
y
{-Ê
y
[³{ W¥ ÆGT[É?4[TTÆGT[É?T ´G M[¸#
y
{ TWT? ? ´ {Iº
G{
T³¥W{]¹Ó{KÏÇ{6?¥Î¸_
|µ[³ -[¸2
y
{>³T ]{?
| {?Ê
|MTT³{2º x?y
{2ÅT65
87+*:9# "/
+$. !;
W{{
| T{
y
{ |MTT· W»É
y
y
{ M l
y
{ ÆGT[É?g
³>¸Y
y
{ TTWfº
Ô
E¥ GÅ
Qµ[g[ G »W{{
| T{>
|
[Tø_
|µ[³ ¸_
{f
y
6 T³
W>
y
{-
[|=º
x?y
{
{³T 2¸Î
y
{#Ê
I
y
[³{f { y {
g{T{6 ¸_
|MT {]¹Ó³ |{j
2
TG¹O |{Ig{¶[ ½f 2º
ÌO
y
{>¸`
|M{
f[³{ ÅE W
{³{r´ T{> ´ {¸_
{,[
y
ÆdW[É? TTT>»6 |W¥ {?³¥|M{ ÅG[TM
y {
[|Ò ?³E{6¾ ¥½6{ >Q|T {>³ |{ [É»{ OºÌOl
y
{r¶[³{
f[³{ Åj
y
{ QT
{6{´ [ T{6> W¥
g{Q|{-ÆGT[É?l[
Wl |{QÅdTg{¶[ ½f[³
{ { l ³
[{6 E[³{lQµ³{|W¾{8 ¦H:;ú