SSA Form SSA Form Static Single Assignment Form Å ê «ùxr y fâ Ÿx ùxnº fâÿx ³ ø ± Í r ± º g 1) SSA f f v q «un q ø ñ qfâÿx f f v q ø i ²q øfq v ü Ø v i

Similar documents

ü Ä ä ä ï ï ü ä ä









ú ì

è

ì ì






à


ttian





ì





ò ó ì á è ó






ü Ä ä ä ï ï ü ä ä




í



` ù



ǎ ì

Microsoft Word - 产业协会4.doc



099


Microsoft Word - 会协_2015_1号.doc











ì




Þ ìe v û Ô Ç ˆ u u Á Á ig u ì Á Õ Õ} u k ä{ ä Õ ó Á ò { Ù~ˆ éó ä½áä{ ä }à ò u Á Õz u n u Áu ò z Á ˆ u u Á g u { Á Õ h i. ð ~ h i. ~ ~ ~ d Á ³ { e

í

¹ º ¼» ½ ¹º»¼½

¹ º"»»¹º

¼ ½ ¾ À Á ¾ ¼½¾ ÀÁ¾

é



Microsoft Word - 会协_2011_54号-OK.doc


à è

ttian

<313033BDC6B8D5BA5DB3E62E786C73>


à ý æ ~ ýþ j ý k ì kæ ýg h u u ² È º Æ ø»  g º 31 Ì u È u ê t È 26 Ý ç Í Ÿ º È ul s êº 25 x É )2*41 k )3*41.71 )4*71 k Frequency Percent

<4D F736F F D203520A979C4F5BFA4B941A7F8B0FCA46BB56FAE69A4A7B357B9BA2E646F63>


Microsoft Word 四技二專-家政群專一試題

Microsoft Word - 103Pan01.doc

美育211期_瀏覽用

è ù



Microsoft Word - 会行党_2014_7号-OK.doc

Microsoft Word - 01韓碧琴


Microsoft Word - 103Pan doc

ttian

Microsoft Word - ok-会协函 号.doc

untitled

1

Microsoft Word 四技二專-家政群專一試題

` ` ` ` ō ù ù ǐ ù ` ǐ ` ` ` ù è ó ù `

Transcription:

SSA Form SSA Form Static Single Assignment Form Å ê «ùxr y fâ Ÿx ùxnº fâÿx ³ ø ± Í r ± º g 1) SSA f f v q «un q ø ñ qfâÿx f f v q ø i ²q øfq v ü Ø v i v j, i <> j, d yÿr ü q 1 v := v i := v := v j := 1 2) SSA f È j È n kñfâÿx f Ͳ ü n ü ø j v i,v j,v k, ºfõ f }pí²q f üfõ ü dö v m x v m := j v i,v j,v k, ; jè q rq Àê q nùk gv ºõ ÊŸf { ² º «v m 66$ f Y q n nq u Žpüü q ² ùx Ð e q u ³²É Ͳ n q n ü ü 1

v := v := v i := v j := := v v m := YLYM := v m 2 qfâÿx± 66$ n 66$ g ùx± v '8 À q n Àq ÁÈ p q~ä ~ ú YDOXHQXPEHULQJ xu } ùx~ê j ÉÌ fz öºr q 66$ entry entry k := false i := 1 B 1 k 1 := false i 1 := 1 B 1 j := 2 j 1 := 2 i <= n B 2 k 2 := Ø ( k 1,k 3 ) i 2 := Ø ( i 1,i 3 ) B 2 B 3 B 4 j := j * 2 k k := true B 3 j 2 := Ø ( j 1,j 3 ) i 2 <= n B 4 i := i + 1 B 5 B 6 print j i := i + 1 j 3 := j 2 * 2 k 3 := true i 3 := i 2 + 1 k 2 B 6 exit print j 2 B 5 i 4 := i 2 + 1 i 5 := Ø ( i 2,i 4 ) 3 4 exit 2

v f L É opf LLLL L MN küé o f f f ä uÿ «% H[LW f ØoÈ j n ² ùxrí 66$ qfâÿx Ë ~Ç q MRLQ SRLQW fq % Ä jè º v Ä jè q ý ²ŸjÈ q ü º SSA íÿ È jq SSA y SSA yùxv Í Ð Äü(dominance frontier) DF Ä ³² DF q Áâ DF + ~ Ä È jq i ')([)= ^\_ ] SUHG\ [GRP] [VGRP\` ºf [g VGRPŸxe º [VGRP\ [GRP\d[!\ VGRPÊöi i DF( S) = U DF ( x) 6g Äü x S + i DF ( S) = lim ( i) DF ( S) i ºf 1 DF ( S) = DF ( S) 1 DF i + ( S) = DF ( S DF i ( S)) 6 ÿ [ q«øq Äü Ê + DF ( S { entry}) Ä º [ qjè q Äü npr ~ DF Äü± Ä yùxìnx Äü ~ä ~ i ') ORFDO[ ^\_\ VXFF[\,'20[`ºf,'20[ ^\_[ \q ²q \![` í [ q Äü i ')XS[] ^\ ')]_],'20[ \,'20[`Ê i DF( x) = DF local ( x) U DF up ( x, z) z IDOM ( x) Ço ~ ')[ ') 6 ')6qxu 3

~ fü q DF() ± G N,E öº P qý ³ï Ê ±Ç DF(x), x 1 procedure Dominance_Frontier() { for i := 1 to P do DF( P(i) ) := ; // ñè DF local () for each y succ( p(i) ) do if y IDOM(x) then DF( P(i) ) = { y } ; endif endfor //ñè DF up () for each z IDOM(x) do for each y DF(z) do if y IDOM(x) then DF( P(i) ) = { y } ; endif endfor endfor endfor end 5 function DF_Plus( S : SET of Node ) return SET of Node var change : boolean; D, DFP : SET of Node; begin DFP := DF_Set( S ) ; change := false; D := DF_Set( S DFP) ; if D <> DFP then DFP := D ; change := TRUE; endif until ( not change ) return DFP end function DF_Set( S : SET of Node) return SET of Node var x : Node; D : SET of Node; begin D := ; for each x S do D = DF( x ) ; endfor return D; end 6 4

例 1. 构造 SSA 的过程 Åx ³ 66$ q²z q ²Ÿý ³ï ùx Í %%%H[LW%%%HQWU\ D yë ² ~ü q ') Äü ') % ^%` ORFDO ^%` % %qý entry B 1 B 2 B 3 B 4 B 5 B 6 exit d %,'20% g % f ú,'20% ]_{Äü,'20% ]_ ')% ^H[LW` ORFDO ^H[LW` 7 H[LW %qý dn u H[LW,'20%,'20% ]_ ')% ^H[LW` ORFDO ^H[LW` H[LW %qý dn u H[LW,'20%,'20% ]_ ')H[LW ]_ ORFDO ]_ H[LW ý,'20h[lw ]_GZKV f ú 5

')% ]_ ORFDO ]_ % % %qý dn u p,'20% % % H[LW,'20% np H[LW ') % ') % d H[LW,'20% H[LW 83 ')H[LW ]_ ')% ]%_ ORFDO ]_ % % %qý dn u p,'20% p ORFDO 83 ]%_ % %,'20% % ') % d %,'20(%),jž % 83 ')% ]_ ')% ]_ ORFDO ]_ % %qý dn u %,'20%,'20% ]%_&(% ^%` %,'20% % 83 ')HQWU\ ]_ ORFDO ]_ % HQWU\ qý dn u %,'20HQWU\,'20HQWU\ ]%_&(% ^` 6

E ý y ~ÇÄ È jq Äü ÿ N q % % ') ^HQWU\%%` ^%` ') ^HQWU\%%` ') ^HQWU\%% %` ^%` ÿ L q % % % ') ^HQWU\%%%` ^% H[LW` ') ^HQWU\%%%` ') ^HQWU\%% % %H[LW` ^% H[LW` ÿ M q % % ') ^HQWU\%%` ^%` ') ^HQWU\%%` ') ^HQWU\%% %` ^%` F ý y üñ qÿ q xöè j q íù Í f 55# 7

例 2. SSA 下常量传播 i := 6; i 1 := 6; j := 1; j 1 := 1; k := 1; k 1 := 1; L L L M M M N N N if ( i = 6 ) then if (i 2 = 6 ) then k := 0 k 3 := 0 i := i + 1; i 3 := i 2 + 1 ; L L L N N N i := i + k; i 5 := i 4 + k 4 ; j := j + 1; j 3 := j 2 + 1; until ( i = j ); until (i 5 = j 3 ); 8 z f öºr q 66$ ² yr z f Ço 66$ ÂÄ y ifqg 723 %27720 p ù xéìk g { q DE D E p ²~ D D D D DD D E f Ë äg, 8

~ u g ù Ÿ Í ²²Ÿ ùx{ ù Ÿ q Í ²~ xoe ~ q²z }p ~ ý ä SSA Form Pass 1 i 1 := 6 i 1 := 6; j 1 := 1; j 1 := 1; k 1 := 1 k 1 := 1; L L L L L L ( 6 6 M M M M M M ( ) N N N N N N if (i 2 = 6 ) then if (i 2 = 6 ) then ( 6=6) = TRUE k 3 := 0 k 3 := 0 i 3 := i 2 + 1; /* i 3 := i 2 + 1 ; Ÿ i 3 q v g */ L L L L L L N N N N N N /* Nq Œ{ ù ŸxuͲ i 5 := i 4 + k 4 ; i 5 := i 4 + k 4 ; ( + )= j 3 := j 2 + 1; j 3 := j 2 + 1; (+ )= until (i 5 = j 3 ); until (i 5 = j 3 ) ( 6 = 2 ) = FALSE; 9 9

Pass 1 Pass 2 i 1 := 6 i 1 := 6; j 1 := 1; j 1 := 1; k 1 := 1 k 1 := 1; L L L ( 6 6 L L L ( 6 6 6 M M M ( ) M M M (1 2) N N N N N N if (i 2 = 6 ) then ( 6=6) = TRUE if (i 2 = 6 ) then ( 6=6) = TRUE k 3 := 0 k 3 := 0 /* Ÿ i 3 q v g */; /* Ÿ i 3 q v g */ L L L L L L N N N N N N /* N q Œ{ ù ŸxuͲ N i 5 := i 4 + k 4 ; (+ )= i 5 := i 4 + k 4 ; ( + )= j 3 := j 2 + 1; (+)= j 3 := j 2 + 1; ( + )= until (i 5 = j 3 ); ( 6 = 2 ) = FALSE until (i 5 = j 3 ); ( 6 = ) = 10 yùxrí ² ~ ý q qz ~ä ~ yv 3DVVq66$f ùxo Í L q L q n k ²y À üº y~ä z ùx Í q~ä 10

j := 1; /* k := 0; // ùxëã i := 6; // ùxëã */ j := j + 1; until ( 6=j ); 10 11