Share to: share facebook share twitter share wa share telegram print page

制御フローグラフ

制御フローグラフ(せいぎょフローグラフ、: Control Flow Graph, CFG)は、プログラムを実行したときに通る可能性のある全経路をグラフで表したものである。この場合、ノードは基本ブロック(すなわち、分岐を全く含まない逐次的コード列であって、途中に分岐先もない)を表し、ノードとノードをつなぐ有向エッジは、あるブロックから別ブロックへのジャンプを意味する。一般に、グラフ全体の入口となる入口ブロックと、出口となる出口ブロックがある。

CFGはコンパイラ最適化静的コード解析ツールでよく使われる。

最適化において利用されるグラフの属性として、到達可能性(reachability)がある。あるブロックまたは部分グラフが、入口ブロックを含む部分グラフと連結していない場合、そのブロックは決して実行されることはなく、いわゆる到達不能コードであって、容易に削除可能である。出口ブロックが入口ブロックから到達不能な場合、無限ループとなっている(あらゆる無限ループを検出できるわけではない。停止性問題を参照のこと)。プログラマが明示的に到達できないコードや無限ループを書かなくても、そのような状況になることはある。例えば、定数伝播定数畳み込みといった最適化を行った後に分岐スレッディングを行うと、元々は別々だった基本ブロックが1つにまとめられることがあり、エッジがCFGから除去され、グラフの一部が連結されなくなることがある。

用語

制御フローグラフに関連して使われる用語を列挙する。

入口ブロック(enter block)
グラフの制御の入口となるブロック
出口ブロック(exit block)
グラフの制御の出口となるブロック
後退エッジ(back edge)
グラフを深さ優先探索したときに、上位のノードに戻るようになっているエッジ
クリティカルエッジ(critical edge)
あるブロックから出ている唯一のエッジでもなく、あるブロックに入っている唯一のエッジでもないエッジ。このようなエッジ群は途中に新たなノード(ブロック)を追加して、そこで何からの計算が行われると考えられる。
異常エッジ(abnormal edge)
行き先が不明なエッジ。最適化の妨げとなる傾向がある。例外処理によってこのようなエッジが生成される。
不可能エッジ(impossible edge)
全ブロックから最終的に出口ブロックに到達するよう意図的に加えられたエッジ。実際にそこを通る制御フローは存在しない。
支配ノード(dominator)
ブロックMがブロックNを支配するとは、ブロックNに入っていくる全経路が必ず事前にブロックMを通っていることを意味する。入口ブロックは他の全ブロックから見て支配ノードである。
後支配ノード(postdominator)
ブロックNから出口ブロックまでの全経路で必ずブロックMを通るとき、ブロックMを後支配ノードと呼ぶ。出口ブロックは他の全ブロックから見て後支配ノードである。
直接支配ノード(immediate dominator)
ブロックMがブロックNの支配ノードで、かつその途中の経路にブロックNにとっての支配ノードが存在しない場合、ブロックMをブロックNの直接支配ノードという。あるブロックに支配ノードがある場合、直接支配ノードは唯一存在する。
直接後支配ノード(immediate postdominator)
直接支配ノードと同様の考え方。
支配木(dominator tree)
支配関係だけを示した補助的なデータ構造。ブロックMがブロックNの支配ノードである場合、ブロックMからブロックNへのエッジが描かれる。直接支配ノードは唯一なので、このグラフは木構造となる。根となるのは入口ブロックである。
後支配木(postdominator tree)
支配木と同様。出口ブロックが根となる。
ループヘッダ(loop header)
ループ構造の入口となるブロック。ループを構成する後退エッジが指すことになる。ループ本体を構成する全ブロックの支配ノードとなる。
ループ前ヘッダ(loop pre-header)
ブロックMがループヘッダとする。いくつかの最適化技法では、ブロックMを Mpre と Mloop の2つに分割する。Mの中身は Mloop に移行し、後退エッジはこれを指すようにする。一方、それ以外のエッジは Mpre を指すようにし、Mpre から Mloop へのエッジを追加する(Mpre は Mloop の直接支配ノードとなる)。Mpre は当初は何もしない(コードを含まない)が、ループ不変量コード移動などの最適化でコードが移される。この Mpre をループ前ヘッダという。Mloop はループヘッダである。

次のようなコード断片があるとする。

0: (A) t0 = read_num
1: (A) if t0 mod 2 == 0 goto 4
2: (B)   print t0 + " is odd."
3: (B)   goto 5
4: (C) print t0 + " is even."
5: (D) end program

括弧内のアルファベットがブロックを意味し、ここでは4つのブロックがある。A は入口ブロック、D は出口ブロックであり、4行目と5行目が分岐先である。これを制御フローグラフで表した場合、エッジは AからB、AからC、BからD、CからD の4本になる。


関連項目


外部リンク

Read other articles:

Destiny's ChildAlbum studio karya Destiny's ChildDirilis17 Februari 1998[1]Direkam1997–1998GenreR&B, pop, teen pop, dance-popDurasi56:11LabelColumbiaProduserCraig B., Sylvia Bennett-Smith, Jerry Duplessis, Jermaine Dupri, Rob Fusari, Che Greene, Vincent Herbert, Wyclef Jean, KLC, Jay Lincoln, Mark Morales, O'Dell, Cory Rooney, Terry T., Tim & Bob, Carl Washington, D'Wayne WigginsKronologi Destiny's Child Destiny's Child(1998) The Writing's on the Wall(1999)String Module Err…

Kembang SurgaGenre Drama Roman PembuatSinemArtDitulis oleh Salim Tariq Relita M. Hermanto SutradaraNoto BagaskoroPemeran Sahrul Gunawan Revalina S. Temat Dhini Aminarti Aming Drg. Fadly Ayu Dyah Pasha David Hoffman Ananda George Tetty Liz Indriati Renaldo Thompson Inong Penggubah lagu temaOpickLagu pembukaTakdir oleh Opick feat Melly GoeslawLagu penutupTakdir oleh Opick feat Melly GoeslawNegara asalIndonesiaBahasa asliBahasa IndonesiaJmlh. musim1Jmlh. episode28ProduksiProduser eksekutifElly Yant…

Toninho Cerezo Cerezo alla Roma nella stagione 1983-1984 Nazionalità  Brasile Altezza 183 cm Peso 75 kg Calcio Ruolo Allenatore (ex centrocampista) Termine carriera 1998 - giocatore Carriera Giovanili 1971 Atlético Mineiro Squadre di club1 1972-1973 Atlético Mineiro30 (0)1973-1974 Nacional-AM28 (2)1974-1983 Atlético Mineiro115 (6)1983-1986 Roma70 (13)1986-1992 Sampdoria145 (14)[1]1992-1993 San Paolo16 (1)1994 Cruzeiro79 (6)1995-1996 S…

Elections 2020 Vermont Senate election ← 2018 November 3, 2020 2022 → All 30 seats in the Vermont Senate16 seats needed for a majority   Majority party Minority party Third party   Leader Tim Ashe(retired) Joe Benning Anthony Pollina Party Democratic Republican Progressive Leader since January 6, 2017 January 4, 2018 2013 Leader's seat Chittenden Caledonia Washington Last election 22 6 2 Seats won 21 7 2 Seat change 1 1 Popular vote 4…

See also: 2020 United States Senate elections Not to be confused with 2020 Georgia State Senate election. For the other Senate election in Georgia held in parallel, see 2020–21 United States Senate special election in Georgia. 2020–21 United States Senate election in Georgia ← 2014 November 3, 2020 (first round)January 5, 2021 (runoff) 2026 → Turnout65.4% (first round)61.5% (runoff)   Candidate Jon Ossoff David Perdue Party Democratic Republican First round 2,374,5…

2020 single by Katy Perry SmileThe original single was released with the same artwork as the album.[1] Above cover is for the Giorgio Moroder remix, a similar cover art was released for the Joel Corry remix.Single by Katy Perryfrom the album Smile ReleasedJuly 10, 2020 (2020-07-10)StudioPulse and Windmark (Los Angeles, California)GenreNu-discoLength2:47LabelCapitolSongwriter(s)Katy PerryBrittany Starrah HazzardFerras AlqaisiOliver GoldsteinJosh AbrahamAnthony CrissBenny Go…

British polymath (1890–1962) For the New Zealand cricketer, see Ronald Fisher (cricketer). SirRonald FisherFRSFisher in 1913BornRonald Aylmer Fisher(1890-02-17)17 February 1890London, EnglandDied29 July 1962(1962-07-29) (aged 72)Adelaide, South Australia, AustraliaAlma materGonville and Caius College, CambridgeKnown forFisher's exact testFisher's inequalityFisher's principleFisher's geometric modelFisher's Iris data setFisher's linear discriminantFisher's equationFisher informat…

Elezioni presidenziali in Colombia del 2014 Stato  Colombia Data 25 maggio, 15 giugno Affluenza 40,10% (primo turno) ( 9,20%)47,97% (secondo turno) ( 3,62%) Candidati Juan Manuel Santos Óscar Iván Zuluaga Partiti Partito Sociale di Unità Nazionale Centro Democratico VotiI turno 3.310.79425,72% 3.769.00529,28% VotiII turno 7.839.34250,99% 6.917.00144,99% Distribuzione del voto per dipartimento (I e II turno) Presidente uscente Juan Manuel Santos 2010 2018 Le elezioni presidenzia…

MagnoliidsRentang fosil: 113–0 jtyl[1][2] PreЄ Є O S D C P T J K Pg N Albium - saat ini Magnolia × alba (Cempaka putih/kantil) Klasifikasi ilmiah Kerajaan: Plantae (tanpa takson): Tracheophyta (tanpa takson): Angiospermae (tanpa takson): MagnoliidsAPGMagnoliidaeNovák ex Takht.[3] [W.S. Judd, P.S. Soltis & D.E. Soltis][4] Ordo Canellales Laurales Magnoliales Piperales Magnoliidae (atau magnoliids menurut Sistem klasifikasi APG III) adalah sekelompok …

Daremo Shiranai (誰も知らない)Lagu oleh Arashidari album The DigitalianSisi-B Okaeri (おかえり) Keep on tryin' Miracle Summer (ミラクル・サマー) Dirilis28 Mei 2014 (2014-05-28)FormatCD, CD + DVDDirekam2014GenrePopLabelJ StormKronologi singel Guts! (2014) Daremo Shiranai (誰も知らない) (2014) Sakura (2015) Daremo Shiranai (誰も知らない, Nobody Knows) adalah single ke-44 boyband Jepang Arashi. Single ini dirilis di bawah label rekaman J Storm pada tanggal 28 Mei …

Menara Shanghai上海中心大厦Shànghǎi Zhōngxīn DàshàMenara Shanghai pada tahun 2015.Informasi umumStatusSelesai dibangunLokasiLujiazui, Pudong, Shanghai, TiongkokMulai dibangun29 November 2008[1]Perkiraan rampungTutup atap: 3 Agustus 2013[2][3] Overall completion: 2014[4]BiayaUS$2,2 miliar[4]TinggiArsitektural632 m (2.073 ft)[5]Lantai atas5.567 m (18.264 ft)[5]Data teknisJumlah lantai121[5]Luas lantai38…

M.O.N.TM.O.N.T di Hongdae, Maret 2019Informasi latar belakangAsalPulau Ganghwa, Incheon, Korea SelatanGenreK-pop, dansaTahun aktif2017 (2017)–kiniLabelFMSitus webwww.flymusicent.comAnggota Narachan Roda Bitsaeon M.O.N.T (Hangul: 몬트) adalah sebuah grup idola Korea Selatan yang menjalin kontrak dengan FM Entertainment. Grup tersebut awalnya debut sebagai trio yang terdiri dari Narachan, rapper Roda, dan vokalis utama Bitsaeon. Pada 2017, M.O.N.T merilis singel digital Sorry dan…

Questa voce o sezione sull'argomento calciatori è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento. Mario Melchiot Melchiot nel 2007 Nazionalità &…

روث ويلسون (بالإنجليزية: Ruth Wilson)‏  معلومات شخصية الميلاد 13 يناير 1982 (العمر 42 سنة)ميدلسكس، إنجلترا مواطنة المملكة المتحدة  العشير جود لو  أقرباء ألكسندر ويلسون (جد)دينيس ويلسون  [لغات أخرى]‏ (عم)  الحياة العملية المدرسة الأم جامعة نوتنغهامأكاديمية لندن للموسي…

This is a list of members of the Victorian Legislative Assembly as elected at the 15 March 1907 election and subsequent by-elections up to the election of 29 December 1908.[1] Note the Term in Office refers to that members term(s) in the Assembly, not necessarily for that electorate. 21st Parliament Name Party[2] Electorate Term in Office Frank Anstey Labor Brunswick 1902–1910 Reginald Argyle Anti-Socialist Dalhousie 1900–1914 Norman Bayles Anti-Socialist Toorak 1906–1920 W…

سلاح المشاة (إسرائيل) الدولة إسرائيل  الإنشاء 2000  جزء من القوات البرية الإسرائيلية  تعديل مصدري - تعديل   سلاح المشاة الإسرائيلي هو سلاح في القوات البرية للجيش الإسرائيلي، إنه سلاح استراتيجي يعتمد في المقام الأول على قوات المشاة، ويضم العديد من وحدات الخدمة العادي…

Archeological site in Chelyabinsk Oblast, Russia SintashtaСинташта́Location of the Sintashta culture (violet)Shown within Continental AsiaShow map of Continental AsiaSintashta (Russia)Show map of RussiaLocationChelyabinsk Oblast, RussiaCoordinates52°29′10.4″N 60°11′17.8″E / 52.486222°N 60.188278°E / 52.486222; 60.188278TypeSettlement Sintashta[a] is an archaeological site in Chelyabinsk Oblast, Russia. It is the remains of a fortified settleme…

Egg-lemon sauce or soup It has been suggested that this article should be split into a new article titled Agristada. (discuss) (October 2023) AvgolemonoTypeSauce and soupMain ingredientsEggs, lemon juice, broth  Media: Avgolemono Avgolemono (Greek: αυγολέμονο or αβγολέμονο[1] literally egg–lemon) is a family of sauces and soups made with egg yolk and lemon juice mixed with broth, heated until they thicken. Avgolemono can be used to thicken soups and stews. …

County in Nebraska, United States County in NebraskaLogan CountyCountyLogan County Courthouse in StapletonLocation within the U.S. state of NebraskaNebraska's location within the U.S.Coordinates: 41°34′N 100°29′W / 41.56°N 100.48°W / 41.56; -100.48Country United StatesState NebraskaFounded1885Named forJohn A. LoganSeatStapletonLargest villageStapletonArea • Total571 sq mi (1,480 km2) • Land571 sq mi (1,480…

Fictional teddy bear created by A. A. Milne This article is about the Disney character Winnie the Pooh. For the character's original version, see Winnie-the-Pooh. For other uses, see Winnie-the-Pooh (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Winnie the Pooh Disney character – news · newspapers ·…

Kembali kehalaman sebelumnya