JP5045666B2 - プログラム解析方法、プログラム解析装置およびプログラム解析プログラム - Google Patents
プログラム解析方法、プログラム解析装置およびプログラム解析プログラム Download PDFInfo
- Publication number
- JP5045666B2 JP5045666B2 JP2008501494A JP2008501494A JP5045666B2 JP 5045666 B2 JP5045666 B2 JP 5045666B2 JP 2008501494 A JP2008501494 A JP 2008501494A JP 2008501494 A JP2008501494 A JP 2008501494A JP 5045666 B2 JP5045666 B2 JP 5045666B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- graph
- dependency
- vertex
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 39
- 230000007850 degeneration Effects 0.000 claims description 21
- 230000008878 coupling Effects 0.000 claims description 16
- 238000010168 coupling process Methods 0.000 claims description 16
- 238000005859 coupling reaction Methods 0.000 claims description 16
- 230000001419 dependent effect Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 description 18
- 238000005457 optimization Methods 0.000 description 12
- 230000002441 reversible effect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Description
(1)制御フローグラフにおける逆辺(back-edge) e=(v,w)について、頂点wが頂点vを支配する(dominant)。
(2)頂点vをエントリとする自然なループ(非特許文献4)について、ループ内のいずれの頂点wも頂点vを後支配(post-dominant)しない。
<性質>:プログラム依存グラフPDG上の頂点の集合Vxであって、頂点の集合Vxに属する頂点が、対応する制御フローグラフCFG上でハンモックHを形成する。
(3)エントリ頂点とイクジット頂点を持つ。
(4)ハンモックH外の頂点vからハンモックH内の頂点uを間の有向パスは必ずエントリ頂点を通る。
(5)ハンモックH内の頂点uからハンモック外の頂点wへの有向パスは必ずイクジット頂点を通る。
(6)対応する制御フローグラフCFG上で、頂点集合の外から頂点集合の内への分岐は、頂点集合の先頭頂点へのみである。対応する制御フローグラフCFG上で、頂点集合の内から頂点集合の外への分岐は、頂点集合の最後の頂点のみである。
(7)頂点間のデータ依存パスに外部の頂点は含まれない。
(付記1)
プログラムの文および制御の依存関係を表す複数の依存要素で構成されるプログラム解析情報を用いて、可逆的に縮退可能な依存要素群を求め、求めた依存要素群を縮退することで依存要素が縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析方法。
(付記2)
付記1記載のプログラム解析方法において、
プログラム解析情報として制御フローグラフおよびプログラム依存グラフを用い、縮退可能な依存要素群を縮退し、縮退できない依存要素についてハンモックを探索し、探索されたハンモックを縮退することで縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析方法。
(付記3)
付記1記載のプログラム解析方法において、
プログラム解析情報としてプログラムの抽象構文木表現およびプログラム依存グラフを用い、抽象構文木表現中の依存要素である頂点集合を探索して、縮退可能な頂点集合を求め、縮退可能な頂点集合に対応するプログラム依存グラフ上の頂点集合を1つの頂点に縮退することで縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析方法。
(付記4)
付記1記載のプログラム解析方法において、
プログラム解析情報としてプログラムの抽象構文木表現を用い、抽象構文木表現中の依存要素である頂点集合を探索して、縮退可能な頂点集合を求め、縮退可能な頂点集合を1つの頂点に縮退し、縮退した頂点を含む頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析方法。
(付記5)
付記1記載のプログラム解析方法において、
プログラム解析情報としてプログラム依存グラフを用い、プログラム依存グラフ中の依存要素である頂点間の結合度を探索し、所定の結合度を超える結合度を有する頂点集合を求め、求めた頂点集合のうち縮退可能な頂点集合をそれぞれ1つの頂点に縮退し、縮退した頂点を含む頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析方法。
(付記6)
付記1記載のプログラム解析方法において、
縮退されたプログラム依存グラフにおいて制御の流れを再構成し、縮退された制御フローグラフを生成し、縮退された制御フローグラフから文レベルの制御フローグラフを生成し、文レベルの制御フローグラフからプログラムコードを生成することを特徴とするプログラム解析方法。
(付記7)
プログラムの文および制御の依存関係を表す複数の依存要素で構成されるプログラム解析情報を用いて、可逆的に縮退可能な依存要素群を求める縮退判定部と、
前記縮退判定部により縮退可能と判定された依存要素群を縮退することで縮退されたプログラム依存グラフを生成するグラフ生成部とを備えていることを特徴とするプログラム解析装置。
(付記8)
付記7記載のプログラム解析装置において、
前記縮退判定部は、プログラム解析情報として制御フローグラフおよびプログラム依存グラフを用い、縮退可能な依存要素群を縮退し、縮退できない依存要素についてハンモックを探索し、探索されたハンモックを縮退し、
前記グラフ生成部は、縮退された依存要素群および縮退されたハンモックを用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析装置。
(付記9)
付記7記載のプログラム解析装置において、
前記縮退判定部は、プログラム解析情報としてプログラムの抽象構文木表現およびプログラム依存グラフを用い、抽象構文木表現中の依存要素である頂点集合を探索して、縮退可能な頂点集合を求め、縮退可能な頂点集合に対応するプログラム依存グラフ上の頂点集合を1つの頂点に縮退し、
前記グラフ生成部は、縮退された頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析装置。
(付記10)
付記7記載のプログラム解析装置において、
前記縮退判定部は、プログラム解析情報としてプログラムの抽象構文木表現を用い、抽象構文木表現中の依存要素である頂点集合を探索して、縮退可能な頂点集合を求め、縮退可能な頂点集合を1つの頂点に縮退し、
前記グラフ生成部は、縮退した頂点を含む頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析装置。
(付記11)
付記7記載のプログラム解析装置において、
前記縮退判定部は、プログラム解析情報としてプログラム依存グラフを用い、プログラム依存グラフ中の依存要素である頂点間の結合度を探索し、所定の結合度を超える結合度を有する頂点集合を求め、求めた頂点集合のうち縮退可能な頂点集合をそれぞれ1つの頂点に縮退し、
前記グラフ生成部は、縮退した頂点を含む頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析装置。
(付記12)
付記7記載のプログラム解析装置において、
縮退されたプログラム依存グラフにおいて制御の流れを再構成する再構成部と、
縮退された制御フローグラフを生成し、縮退された制御フローグラフから文レベルの制御フローグラフを生成する制御フローグラフ生成部と、
文レベルの制御フローグラフからプログラムコードを生成するコード生成部とを備えていることを特徴とするプログラム解析装置。
(付記13)
プログラムを解析するために、コンピュータに、
プログラムの文および制御の依存関係を表したプログラム解析情報を用いて、可逆的に縮退可能な依存要素群を求める縮退判定処理と、
前記縮退判定処理により縮退可能と判定された依存要素群を縮退することで縮退されたプログラム依存グラフを生成するグラフ生成処理とを実行させるためのプログラム解析プログラム。
(付記14)
付記13記載のプログラム解析プログラムにおいて、
前記縮退判定処理は、プログラム解析情報として制御フローグラフおよびプログラム依存グラフを用い、縮退可能な依存要素群を縮退し、縮退できない依存要素についてハンモックを探索し、探索されたハンモックを縮退し、
前記グラフ生成処理は、縮退された依存要素群および縮退されたハンモックを用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析プログラム。
(付記15)
付記13記載のプログラム解析プログラムにおいて、
前記縮退判定処理は、プログラム解析情報としてプログラムの抽象構文木表現およびプログラム依存グラフを用い、抽象構文木表現中の依存要素である頂点集合を探索して、縮退可能な頂点集合を求め、縮退可能な頂点集合に対応するプログラム依存グラフ上の頂点集合を1つの頂点に縮退し、
前記グラフ生成処理は、縮退された頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析プログラム。
(付記16)
付記13記載のプログラム解析プログラムにおいて、
前記縮退判定処理は、プログラム解析情報としてプログラムの抽象構文木表現を用い、抽象構文木表現中の依存要素である頂点集合を探索して、縮退可能な頂点集合を求め、縮退可能な頂点集合を1つの頂点に縮退し、
前記グラフ生成処理は、縮退した頂点を含む頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析プログラム。
(付記17)
付記13記載のプログラム解析プログラムにおいて、
前記縮退判定処理は、プログラム解析情報としてプログラム依存グラフを用い、プログラム依存グラフ中の依存要素である頂点間の結合度を探索し、所定の結合度を超える結合度を有する頂点集合を求め、求めた頂点集合のうち縮退可能な頂点集合をそれぞれ1つの頂点に縮退し、
前記グラフ生成処理は、縮退した頂点を含む頂点集合を用いて縮退されたプログラム依存グラフを生成することを特徴とするプログラム解析プログラム。
(付記18)
付記13記載のプログラム解析プログラムにおいて、
コンピュータに、
縮退されたプログラム依存グラフにおいて制御の流れを再構成する再構成処理と、
縮退された制御フローグラフを生成し、縮退された制御フローグラフから文レベルの制御フローグラフを生成する制御フローグラフ生成処理と、
文レベルの制御フローグラフからプログラムコードを生成するコード生成処理とを実行させるためのプログラム解析プログラム。
Claims (8)
- コンピュータが、
記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成される制御フローグラフおよび第1のプログラム依存グラフに基づき、前記制御フローグラフにおける逆辺(v、w)の各々について頂点wが頂点vを支配する第1の依存要素を求め、求めた前記第1の依存要素以外の第2の依存要素について、前記頂点v、wを含む最小ハンモックを探索し、前記求めた第1の依存要素を縮退するとともに、前記探索した最小ハンモックに含まれる頂点の集合を1つの頂点に縮退して第2のプログラム依存グラフを生成し、前記生成した第2のプログラム依存グラフを記憶装置に格納し、縮退した前記第2のプログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納し、記憶装置に格納されている縮退された前記第2のプログラム依存グラフおよび前記付加情報に基づいてプログラムコードを生成するプログラム解析方法。 - コンピュータが、
記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成されるプログラムの抽象構文木表現および第1のプログラム依存グラフに基づき、抽象構文木表現の構文木を深さ優先で探索して可逆的に縮退可能な第1の頂点集合を求め、前記求めた第1の頂点集合について前記第1のプログラム依存グラフ上の対応する第2の頂点集合を探索し、前記探索した第2の頂点集合を1つの頂点に縮退することで第2のプログラム依存グラフを生成し、前記生成した第2プログラム依存グラフを記憶装置に格納し、縮退した前記第2のプログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納し、記憶装置に格納されている縮退された前記第2のプログラム依存グラフおよび前記付加情報を用いてプログラムコードを生成するプログラム解析方法。 - コンピュータが、
記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成されるプログラムの抽象構文木表現をプログラム解析情報として用いて、抽象構文木表現中の依存要素である頂点集合を探索し、条件分岐文および処理の後に条件式を判定する後判定ループ文については、文全体を1つの頂点に縮退し、処理の前に条件式を判定する前判定ループ文内のループ終了文については直近の親である前判定ループ文全体を1つの頂点に縮退し、ジャンプ文については、制御フローグラフに変換した後にハンモックを探索し、探索したハンモックに含まれる頂点の集合を1つの頂点に縮退し、縮退した頂点を含む頂点集合を用いて依存要素が縮退されたプログラム依存グラフを生成し、前記生成したプログラム依存グラフを記憶装置に格納し、縮退した前記プログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納し、記憶装置に格納されている縮退された前記プログラム依存グラフおよび前記付加情報を用いてプログラムコードを生成するプログラム解析方法。 - コンピュータが、
記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成される第1のプログラム依存グラフに基づき、前記第1のプログラム依存グラフ中の依存要素である頂点間の結合度を探索し、所定の結合度を超える結合度を有する頂点集合を求め、前記第1のプログラム依存グラフに対応する制御フローグラフ上で、前記頂点集合の外から前記頂点集合の内への分岐が前記頂点集合の先頭頂点へのみであり、前記頂点集合の内から前記頂点集合の外への分岐が前記頂点集合の最後の頂点のみであり、かつ頂点間のデータ依存パスに外部の頂点を含まない条件を満たす場合に、頂点を結合して依存要素が縮退された第2のプログラム依存グラフを生成し、前記生成した第2のプログラム依存グラフを記憶装置に格納し、縮退した前記第2のプログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納し、記憶装置に格納されている縮退された前記第2のプログラム依存グラフおよび前記付加情報を用いてプログラムコードを生成するプログラム解析方法。 - 請求項1記載のプログラム解析方法において、
縮退されたプログラム依存グラフにおいて制御の流れを再構成し、縮退された制御フローグラフを生成し、記憶装置に格納されている前記付加情報を用いて、縮退した頂点の制御の流れを展開し、前記縮退された制御フローグラフから文レベルの制御フローグラフを生成し、前記文レベルの制御フローグラフから前記プログラムコードを生成するプログラム解析方法。 - 記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成される制御フローグラフおよび第1のプログラム依存グラフに基づき、前記制御フローグラフにおける逆辺(v、w)の各々について頂点wが頂点vを支配する第1の依存要素を求め、求めた前記第1の依存要素以外の第2の依存要素について、前記頂点v、wを含む最小ハンモックを探索する縮退判定部と、
前記縮退判定部により求めた前記第1の依存要素を縮退するとともに、前記探索した最小ハンモックに含まれる頂点の集合を1つの頂点に縮退して第2のプログラム依存グラフを生成し、前記生成した第2のプログラム依存グラフを記憶装置に格納し、縮退した前記第2のプログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納するグラフ生成部と、
記憶装置に格納されている縮退された前記第2のプログラム依存グラフおよび前記付加情報に基づいてプログラムコードを生成するコード生成部とを備えているプログラム解析装置。 - 記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成されるプログラムの抽象構文木表現および第1のプログラム依存グラフに基づき、抽象構文木表現の構文木を深さ優先で探索して、可逆的に縮退可能な第1の頂点集合を求め、前記求めた第1の頂点集合について前記第1のプログラム依存グラフ上の対応する第2の頂点集合を探索する縮退判定部と、
前記縮退判定部により探索した前記第2の頂点集合を1つの頂点に縮退することで第2のプログラム依存グラフを生成し、前記生成した第2のプログラム依存グラフを記憶装置に格納し、さらに、縮退した前記第2のプログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納するグラフ生成部と、
記憶装置に格納されている縮退された前記第2のプログラム依存グラフおよび前記付加情報を用いてプログラムコードを生成するコード生成部とを備えているプログラム解析装置。 - プログラムを解析するために、コンピュータに、
記憶装置に格納されているプログラムの文および制御の依存関係を表す複数の依存要素で構成される制御フローグラフおよび第1のプログラム依存グラフに基づき、前記制御フローグラフにおける逆辺(v、w)の各々について頂点wが頂点vを支配する第1の依存要素を求め、求めた前記第1の依存要素以外の第2の依存要素について、前記頂点v、wを含む最小ハンモックを探索する縮退判定処理と、
前記求めた前記第1の依存要素を縮退するとともに、前記探索した最小ハンモックに含まれる頂点の集合を1つの頂点に縮退して第2のプログラム依存グラフを生成し、前記生成した第2のプログラム依存グラフを記憶装置に格納し、縮退した前記第2のプログラム依存グラフのプログラムの制御の流れを示す情報を付加情報として記憶装置に格納するグラフ生成処理と、
記憶装置に格納されている縮退された前記第2のプログラム依存グラフおよび前記付加情報に基づいてプログラムコードを生成するコード生成処理とを実行させるためのプログラム解析プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/302955 WO2007096935A1 (ja) | 2006-02-20 | 2006-02-20 | プログラム解析方法、プログラム解析装置およびプログラム解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007096935A1 JPWO2007096935A1 (ja) | 2009-07-09 |
JP5045666B2 true JP5045666B2 (ja) | 2012-10-10 |
Family
ID=38436996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008501494A Expired - Fee Related JP5045666B2 (ja) | 2006-02-20 | 2006-02-20 | プログラム解析方法、プログラム解析装置およびプログラム解析プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8181171B2 (ja) |
JP (1) | JP5045666B2 (ja) |
WO (1) | WO2007096935A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200811A1 (en) * | 2005-03-07 | 2006-09-07 | Cheng Stephen M | Method of generating optimised stack code |
US8683441B2 (en) | 2006-01-11 | 2014-03-25 | International Business Machines Corporation | Software equivalence checking |
US8826255B1 (en) * | 2007-06-18 | 2014-09-02 | The Mathworks, Inc. | Restructuring control flow graphs generated from a model |
US9110706B2 (en) * | 2009-02-09 | 2015-08-18 | Microsoft Technology Licensing, Llc | General purpose distributed data parallel computing using a high level language |
CN101639806B (zh) * | 2009-09-01 | 2015-06-03 | 中兴通讯股份有限公司 | 用于自动化测试的拓扑适配方法和装置 |
US8584100B2 (en) * | 2009-12-10 | 2013-11-12 | Sap Ag | Bridging code changes and testing |
TWI448965B (zh) * | 2011-06-15 | 2014-08-11 | Tatung Co | 解析程式碼的方法 |
US8666999B2 (en) * | 2011-08-02 | 2014-03-04 | Rockwell Automation Technologies, Inc. | Search utility program for software developers |
CN103092747B (zh) * | 2011-10-27 | 2016-06-22 | 西门子公司 | 一种控制程序的验证和测试方法及*** |
JP5910230B2 (ja) * | 2012-03-26 | 2016-04-27 | 富士通株式会社 | 設計支援プログラム、設計支援方法、および設計支援装置 |
US8806464B2 (en) | 2012-04-26 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | Process flow optimized directed graph traversal |
US9658999B2 (en) * | 2013-03-01 | 2017-05-23 | Sony Corporation | Language processing method and electronic device |
US9619364B2 (en) * | 2013-03-14 | 2017-04-11 | Nvidia Corporation | Grouping and analysis of data access hazard reports |
US9043921B2 (en) * | 2013-04-12 | 2015-05-26 | Fujitsu Limited | Determining software metrics |
US9122561B2 (en) * | 2013-09-24 | 2015-09-01 | International Business Machines Corporation | Program integration that accommodates restrictions on merge-locations |
GB2521367A (en) * | 2013-12-17 | 2015-06-24 | Ibm | Adaptable and extensible runtime and system for heterogeneous computer systems |
US9886736B2 (en) | 2014-01-20 | 2018-02-06 | Nvidia Corporation | Selectively killing trapped multi-process service clients sharing the same hardware context |
CN105512046B (zh) * | 2016-02-01 | 2018-02-13 | 北京理工大学 | 基于粒子群优化算法的Android自动化测试方法 |
JP6933012B2 (ja) * | 2017-06-14 | 2021-09-08 | 富士通株式会社 | 解析装置、解析プログラムおよび解析方法 |
JP6926841B2 (ja) * | 2017-08-31 | 2021-08-25 | 富士電機株式会社 | コントロールシステム、開発支援装置、及びコントロール方法 |
JP2023084609A (ja) * | 2021-12-07 | 2023-06-19 | 富士通株式会社 | 変換プログラムおよび変換方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5161216A (en) * | 1989-03-08 | 1992-11-03 | Wisconsin Alumni Research Foundation | Interprocedural slicing of computer programs using dependence graphs |
US6064819A (en) * | 1993-12-08 | 2000-05-16 | Imec | Control flow and memory management optimization |
US5802375A (en) * | 1994-11-23 | 1998-09-01 | Cray Research, Inc. | Outer loop vectorization |
US5918035A (en) * | 1995-05-15 | 1999-06-29 | Imec Vzw | Method for processor modeling in code generation and instruction set simulation |
US5894576A (en) * | 1996-11-12 | 1999-04-13 | Intel Corporation | Method and apparatus for instruction scheduling to reduce negative effects of compensation code |
US6077313A (en) * | 1997-10-22 | 2000-06-20 | Microsoft Corporation | Type partitioned dataflow analyses |
US6578197B1 (en) * | 1998-04-08 | 2003-06-10 | Silicon Graphics, Inc. | System and method for high-speed execution of graphics application programs including shading language instructions |
US6327699B1 (en) * | 1999-04-30 | 2001-12-04 | Microsoft Corporation | Whole program path profiling |
US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US6374403B1 (en) * | 1999-08-20 | 2002-04-16 | Hewlett-Packard Company | Programmatic method for reducing cost of control in parallel processes |
IL131782A (en) * | 1999-09-07 | 2005-11-20 | Ibm | Automatic removal of array memory leaks |
US6848100B1 (en) * | 2000-03-31 | 2005-01-25 | Intel Corporation | Hierarchical software path profiling |
JP3664473B2 (ja) | 2000-10-04 | 2005-06-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
JP3707727B2 (ja) * | 2000-10-30 | 2005-10-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの最適化方法及びこれを用いたコンパイラ |
US7165245B2 (en) * | 2001-04-27 | 2007-01-16 | Intel Corporation | Pruning local graphs in an inter-procedural analysis solver |
US7650593B2 (en) * | 2004-03-25 | 2010-01-19 | Microsoft Corporation | Proxy objects for display |
US7765534B2 (en) * | 2004-04-30 | 2010-07-27 | International Business Machines Corporation | Compiler with cache utilization optimizations |
US7478378B2 (en) * | 2004-11-29 | 2009-01-13 | International Business Machines Corporation | Semantically consistent adaptation of software applications |
US7624386B2 (en) * | 2004-12-16 | 2009-11-24 | Intel Corporation | Fast tree-based generation of a dependence graph |
US7627864B2 (en) * | 2005-06-27 | 2009-12-01 | Intel Corporation | Mechanism to optimize speculative parallel threading |
-
2006
- 2006-02-20 WO PCT/JP2006/302955 patent/WO2007096935A1/ja active Application Filing
- 2006-02-20 JP JP2008501494A patent/JP5045666B2/ja not_active Expired - Fee Related
-
2008
- 2008-08-14 US US12/191,623 patent/US8181171B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPWO2007096935A1 (ja) | 2009-07-09 |
WO2007096935A1 (ja) | 2007-08-30 |
US20090007087A1 (en) | 2009-01-01 |
US8181171B2 (en) | 2012-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5045666B2 (ja) | プログラム解析方法、プログラム解析装置およびプログラム解析プログラム | |
Lai et al. | HeteroCL: A multi-paradigm programming infrastructure for software-defined reconfigurable computing | |
Zheng et al. | Flextensor: An automatic schedule exploration and optimization framework for tensor computation on heterogeneous system | |
CN110764744B (zh) | 用于神经网络计算的中间表示生成方法和装置 | |
US8572590B2 (en) | Methods and apparatus for joint parallelism and locality optimization in source code compilation | |
US20170090891A1 (en) | Method and device for assisting with code optimisation and parallelisation | |
Wahib et al. | Automated GPU kernel transformations in large-scale production stencil applications | |
Qawasmeh et al. | Performance portability in reverse time migration and seismic modelling via OpenACC | |
Rodríguez et al. | Trace-based affine reconstruction of codes | |
Weber et al. | MATOG: array layout auto-tuning for CUDA | |
CN114631099A (zh) | 人工智能透明度 | |
US8312400B2 (en) | Verification supporting system | |
US20240069878A1 (en) | Instruction-based performance prediction for deep learning accelerator | |
KR20160098794A (ko) | 디바이스 프로그램 구조 모델링 기반 골격코드 생성 장치 및 방법 | |
Singer et al. | Syclops: A sycl specific llvm to mlir converter | |
JP2012014526A (ja) | プログラムコードの構造変換装置、並びにコード構造変換プログラム | |
Fabeiro et al. | OCLoptimizer: An iterative optimization tool for OpenCL | |
Desai et al. | ACORNS: An easy-to-use code generator for gradients and Hessians | |
JP7407192B2 (ja) | フィールド・プログラマブル・ゲート・アレイのためのコードを最適化する方法および装置 | |
Grant et al. | Introducing the StataStan interface for fast, complex Bayesian modeling using Stan | |
Remmelg et al. | High-level hardware feature extraction for GPU performance prediction of stencils | |
Sari et al. | A Highly Scalable Instruction Scheduler Design based on CPU Stall Elimination | |
O’Neal et al. | Hardware-assisted cross-generation prediction of GPUs under design | |
Gruber et al. | Building of a Polyhedral Representation from an Instrumented Execution: Making Dynamic Analyses of non-Affine Programs Scalable | |
JP2019139675A (ja) | ソースコード最適化装置、プログラムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111228 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120702 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |