JP4860240B2 - 翻訳方法および実行通知命令の埋め込み方法 - Google Patents
翻訳方法および実行通知命令の埋め込み方法 Download PDFInfo
- Publication number
- JP4860240B2 JP4860240B2 JP2005327028A JP2005327028A JP4860240B2 JP 4860240 B2 JP4860240 B2 JP 4860240B2 JP 2005327028 A JP2005327028 A JP 2005327028A JP 2005327028 A JP2005327028 A JP 2005327028A JP 4860240 B2 JP4860240 B2 JP 4860240B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- identification information
- unit
- execution notification
- 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 title claims description 115
- 238000013519 translation Methods 0.000 title claims description 20
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 78
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000000691 measurement method Methods 0.000 description 7
- 238000007796 conventional method Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
前記ソースプログラムを機械語プログラムに変換する変換ステップと、
前記機械語プログラムの冗長性を排除する最適化ステップと、
前記最適化ステップの後に、自身が実行されたことを通知する実行通知命令を、最適化した前記機械語プログラム中に埋め込む埋め込みステップと、
前記埋め込みステップで前記実行通知命令が埋め込まれた前記機械語プログラムに基づいて、前記実行通知命令を含んだ実行プログラムを生成するプログラム生成ステップとを備え、
前記埋め込みステップは、
前記機械語プログラム中の分岐命令や分岐先を含まない一連の命令列である基本ブロック毎の開始点を検索する第1の検索サブステップと、
前記第1の検索サブステップにおいて検索した基本ブロック毎の開始点に実行通知命令を配置する第1の命令配置サブステップと、
前記機械語プログラム中において、分岐命令とは異なる条件実行命令のうち、同一の条件が付与されている条件実行命令で構成される条件実行命令群毎の開始点を検索する第2の検索サブステップと、
前記第2の検索サブステップにおいて検索した条件実行命令群毎の開始点に、条件実行命令群と同一の条件を付与した条件実行命令である前記実行通知命令を配置する第2の命令配置サブステップとを備え、
前記プログラム生成ステップは、
前記実行通知命令毎に対して、個々の実行通知命令を識別するための情報を生成する識別情報生成サブステップと、
前記実行通知命令を実行することによって各実行通知命令を識別できるように、前記識別情報を各実行通知命令に付与する識別情報付与サブステップとを備えることを特徴とする。
処理対象とする任意の条件実行命令群について、当該条件実行命令群の開始点から、当該条件実行命令群を含む基本ブロックの開始点に向かって、当該条件実行命令群に付与されている条件の真偽値を設定する条件設定命令を検索する第3の検索サブステップと、
前記第3の検索サブステップの結果、前記条件設定命令が存在する場合に、前記条件設定命令と当該条件実行命令群の開始点との間に、前記実行通知命令を配置しても既存の命令と並列実行可能な配置可能箇所を検索する第4の検索サブステップと、
前記第4の検索サブステップの結果、前記配置可能箇所があれば、前記実行通知命令を前記配置可能箇所に配置し直す第1の配置変更サブステップと、
前記第3の検索サブステップの結果、前記条件設定命令が存在しない場合に、前記基本ブロックの開始点と当該条件実行命令群の開始点との間に、前記配置可能箇所を検索する第5の検索サブステップと、
前記第5の検索サブステップの結果、前記配置可能箇所があれば、前記実行通知命令を前記配置可能箇所に配置し直す第2の配置変更サブステップとを備えるという態様がある。
前記プログラムを1命令以上の領域に分割するために用いられ、それぞれが包含関係にある複数の単位を生成する単位生成ステップと、
第1の単位として、前記単位生成ステップで生成した複数の単位の中から任意の単位を選択する第1の単位選択ステップと、
変換前のソースプログラムまたは変換後の機械語プログラムを前記第1の単位で分割するプログラム分割ステップと、
前記プログラム分割ステップで分割した領域毎の開始点および終了点に、前記実行通知命令を配置する命令配置ステップと、
第1の識別情報として、第1の単位に対応した前記実行通知命令全体に対して、前記機械語プログラム全体の中で唯一となる識別情報を生成する第1の識別情報生成ステップと、
前記第1の識別情報を前記実行通知命令毎に付与する第1の識別情報付与ステップと、
第2の単位として、前記単位生成ステップで決定した単位から、第1の単位に包含される単位を選択する第2の単位選択ステップと、
第2の識別情報として、第2の単位に対応した実行通知命令毎に対して、前記第1の単位で分割した領域の中で唯一となる識別情報を生成する第2の識別情報生成ステップと、
前記第2の識別情報を前記実行通知命令毎に付与する第2の識別情報付与ステップとを備え、
前記単位生成ステップで生成した全ての単位について、前記の第1の単位選択ステップ、プログラム分割ステップ、開始点および終了点検索ステップ、命令配置ステップ、第1の識別情報生成ステップ、第1の識別情報付与ステップ、第2の単位選択ステップ、第2の識別情報生成ステップ、第2の識別情報付与ステップを実行することを特徴とする。
前記任意の単位において分割する領域の開始点と終了点が一対一で対応するかどうかを判定する対応判定ステップを備え、
前記対応判定ステップの結果、領域の開始点と終了点が一対一で対応している場合は、当該単位で分割する領域の終了点に対する検索ステップ、命令配置ステップ、識別情報の生成ステップ、識別情報の付与ステップを省略するという態様がある。
前記任意の単位において分割する領域の開始点が、当該単位を包含する単位で分割した領域の開始点と同一であるかどうか、または、前記任意の単位において分割する領域の終了点が、当該単位を包含する単位で分割した領域の終了点と同一であるかどうかを判定する重複判定ステップを備え、
前記重複判定ステップの結果、当該領域毎の開始点が、当該単位を包含する単位で分割した領域の開始点と同一である場合、または、当該領域毎の終了点が、当該単位を包含する単位で分割した領域の終了点と同一である場合は、当該領域開始点に対する命令配置ステップ、識別情報の生成ステップ、識別情報の付与ステップ、または当該領域終了点に対する命令配置ステップ、識別情報の生成ステップ、識別情報の付与ステップを省略するという態様がある。
プログラムが複数のソースファイルから構成される場合に、各ソースファイルに対応したオブジェクトファイルの生成時には、識別情報がソースファイル間で依存し合う単位に対する識別情報の生成ステップおよび識別情報の付与ステップは未実施のままにしておき、生成された各オブジェクトファイルのリンク時に、識別情報がソースファイル間で依存し合う単位に対する識別情報の生成ステップおよび識別情報の付与ステップを実行するという態様がある。
ステップS43で、第1の識別情報にID番号1が付与されているかどうかを判定する。その結果、ID番号1が付与されていないため、ステップS41に戻る。
20 最適化部
30 実行通知命令埋め込み部
31 ソースファイル単位に対応した実行通知命令埋め込み部
32 関数単位に対応した実行通知命令埋め込み部
33 基本ブロック単位に対応した実行通知命令埋め込み部
34 条件実行命令群に対応した実行通知命令埋め込み部
40 プログラム生成部
100 翻訳部
P1 ソースプログラム
P2 実行プログラム
Claims (6)
- ソースプログラムを実行プログラムに翻訳する翻訳方法であって、
前記ソースプログラムを機械語プログラムに変換する変換ステップと、
前記機械語プログラムの冗長性を排除する最適化ステップと、
前記最適化ステップの後に、自身が実行されたことを通知する実行通知命令を、最適化した前記機械語プログラム中に埋め込む埋め込みステップと、
前記埋め込みステップで前記実行通知命令が埋め込まれた前記機械語プログラムに基づいて、前記実行通知命令を含んだ実行プログラムを生成するプログラム生成ステップとを備え、
前記埋め込みステップは、
前記機械語プログラム中の分岐命令や分岐先を含まない一連の命令列である基本ブロック毎の開始点を検索する第1の検索サブステップと、
前記第1の検索サブステップにおいて検索した基本ブロック毎の開始点に実行通知命令を配置する第1の命令配置サブステップと、
前記機械語プログラム中において、分岐命令とは異なる条件実行命令のうち、同一の条件が付与されている条件実行命令で構成される条件実行命令群毎の開始点を検索する第2の検索サブステップと、
前記第2の検索サブステップにおいて検索した条件実行命令群毎の開始点に、条件実行命令群と同一の条件を付与した条件実行命令である前記実行通知命令を配置する第2の命令配置サブステップとを備え、
前記プログラム生成ステップは、
前記実行通知命令毎に対して、個々の実行通知命令を識別するための情報を生成する識別情報生成サブステップと、
前記実行通知命令を実行することによって各実行通知命令を識別できるように、前記識別情報を各実行通知命令に付与する識別情報付与サブステップとを備えることを特徴とする翻訳方法。 - 前記第2の命令配置サブステップにおいて、
処理対象とする任意の条件実行命令群について、当該条件実行命令群の開始点から、当該条件実行命令群を含む基本ブロックの開始点に向かって、当該条件実行命令群に付与されている条件の真偽値を設定する条件設定命令を検索する第3の検索サブステップと、
前記第3の検索サブステップの結果、前記条件設定命令が存在する場合に、前記条件設定命令と当該条件実行命令群の開始点との間に、前記実行通知命令を配置しても既存の命令と並列実行可能な配置可能箇所を検索する第4の検索サブステップと、
前記第4の検索サブステップの結果、前記配置可能箇所があれば、前記実行通知命令を前記配置可能箇所に配置し直す第1の配置変更サブステップと、
前記第3の検索サブステップの結果、前記条件設定命令が存在しない場合に、前記基本ブロックの開始点と当該条件実行命令群の開始点との間に、前記配置可能箇所を検索する第5の検索サブステップと、
前記第5の検索サブステップの結果、前記配置可能箇所があれば、前記実行通知命令を前記配置可能箇所に配置し直す第2の配置変更サブステップとを備える請求項1に記載の翻訳方法。 - 機械語プログラムに対する実行通知命令の埋め込み方法であって、
前記プログラムを1命令以上の領域に分割するために用いられ、それぞれが包含関係にある複数の単位を生成する単位生成ステップと、
第1の単位として、前記単位生成ステップで生成した複数の単位の中から任意の単位を選択する第1の単位選択ステップと、
変換前のソースプログラムまたは変換後の機械語プログラムを前記第1の単位で分割するプログラム分割ステップと、
前記プログラム分割ステップで分割した領域毎の開始点および終了点に、前記実行通知命令を配置する命令配置ステップと、
第1の識別情報として、第1の単位に対応した前記実行通知命令全体に対して、前記機械語プログラム全体の中で唯一となる識別情報を生成する第1の識別情報生成ステップと、
前記第1の識別情報を前記実行通知命令毎に付与する第1の識別情報付与ステップと、
第2の単位として、前記単位生成ステップで決定した単位から、第1の単位に包含される単位を選択する第2の単位選択ステップと、
第2の識別情報として、第2の単位に対応した実行通知命令毎に対して、前記第1の単位で分割した領域の中で唯一となる識別情報を生成する第2の識別情報生成ステップと、
前記第2の識別情報を前記実行通知命令毎に付与する第2の識別情報付与ステップとを備え、
前記単位生成ステップで生成した全ての単位について、前記の第1の単位選択ステップ、プログラム分割ステップ、開始点および終了点検索ステップ、命令配置ステップ、第1の識別情報生成ステップ、第1の識別情報付与ステップ、第2の単位選択ステップ、第2の識別情報生成ステップ、第2の識別情報付与ステップを実行することを特徴とする実行通知命令の埋め込み方法。 - 前記任意の単位において分割する領域の開始点と終了点が一対一で対応するかどうかを判定する対応判定ステップを備え、
前記対応判定ステップの結果、領域の開始点と終了点が一対一で対応している場合は、当該単位で分割する領域の終了点に対する検索ステップ、命令配置ステップ、識別情報の生成ステップ、識別情報の付与ステップを省略する請求項3に記載の実行通知命令の埋め込み方法。 - 前記任意の単位において分割する領域の開始点が、当該単位を包含する単位で分割した領域の開始点と同一であるかどうか、または、前記任意の単位において分割する領域の終了点が、当該単位を包含する単位で分割した領域の終了点と同一であるかどうかを判定する重複判定ステップを備え、
前記重複判定ステップの結果、当該領域毎の開始点が、当該単位を包含する単位で分割した領域の開始点と同一である場合、または、当該領域毎の終了点が、当該単位を包含する単位で分割した領域の終了点と同一である場合は、当該領域開始点に対する命令配置ステップ、識別情報の生成ステップ、識別情報の付与ステップ、または当該領域終了点に対する命令配置ステップ、識別情報の生成ステップ、識別情報の付与ステップを省略する請求項3に記載の実行通知命令の埋め込み方法。 - プログラムが複数のソースファイルから構成される場合に、各ソースファイルに対応したオブジェクトファイルの生成時には、識別情報がソースファイル間で依存し合う単位に対する識別情報の生成ステップおよび識別情報の付与ステップは未実施のままにしておき、生成された各オブジェクトファイルのリンク時に、識別情報がソースファイル間で依存し合う単位に対する識別情報の生成ステップおよび識別情報の付与ステップを実行する請求項3に記載の実行通知命令の埋め込み方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005327028A JP4860240B2 (ja) | 2005-11-11 | 2005-11-11 | 翻訳方法および実行通知命令の埋め込み方法 |
US11/595,900 US7877743B2 (en) | 2005-11-11 | 2006-11-13 | Program translation method and notifying instruction inserting method |
US12/962,075 US8402445B2 (en) | 2005-11-11 | 2010-12-07 | Program translation method and notifying instruction inserting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005327028A JP4860240B2 (ja) | 2005-11-11 | 2005-11-11 | 翻訳方法および実行通知命令の埋め込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007133716A JP2007133716A (ja) | 2007-05-31 |
JP4860240B2 true JP4860240B2 (ja) | 2012-01-25 |
Family
ID=38042416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005327028A Expired - Fee Related JP4860240B2 (ja) | 2005-11-11 | 2005-11-11 | 翻訳方法および実行通知命令の埋め込み方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7877743B2 (ja) |
JP (1) | JP4860240B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8752026B2 (en) * | 2009-06-01 | 2014-06-10 | International Business Machines Corporation | Efficient code instrumentation |
US11334469B2 (en) * | 2018-04-13 | 2022-05-17 | Microsoft Technology Licensing, Llc | Compound conditional reordering for faster short-circuiting |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359608A (en) * | 1992-11-24 | 1994-10-25 | Amdahl Corporation | Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions |
JP2755154B2 (ja) * | 1994-02-23 | 1998-05-20 | 日本電気株式会社 | プログラム変換処理装置およびプログラム変換処理方法 |
US5471526A (en) * | 1994-02-28 | 1995-11-28 | Telefonaktiebolaget L M Ericsson (Publ.) | Tracing with keys and locks on a telecommunication network |
US5581696A (en) * | 1995-05-09 | 1996-12-03 | Parasoft Corporation | Method using a computer for automatically instrumenting a computer program for dynamic debugging |
US5940622A (en) * | 1996-12-11 | 1999-08-17 | Ncr Corporation | Systems and methods for code replicating for optimized execution time |
US6106571A (en) | 1998-01-29 | 2000-08-22 | Applied Microsystems Corporation | Relocatable instrumentation tags for testing and debugging a computer program |
US6631363B1 (en) * | 1999-10-11 | 2003-10-07 | I2 Technologies Us, Inc. | Rules-based notification system |
US6539501B1 (en) * | 1999-12-16 | 2003-03-25 | International Business Machines Corporation | Method, system, and program for logging statements to monitor execution of a program |
JP2003005980A (ja) * | 2001-06-22 | 2003-01-10 | Matsushita Electric Ind Co Ltd | コンパイル装置およびコンパイルプログラム |
JP2003050716A (ja) * | 2001-08-06 | 2003-02-21 | Matsushita Electric Ind Co Ltd | ソフトウエアデバッガとソフトウエア開発支援システム |
US7110934B2 (en) * | 2002-10-29 | 2006-09-19 | Arm Limited. | Analysis of the performance of a portion of a data processing system |
JP3896087B2 (ja) * | 2003-01-28 | 2007-03-22 | 松下電器産業株式会社 | コンパイラ装置およびコンパイル方法 |
JP2005122329A (ja) * | 2003-10-15 | 2005-05-12 | Matsushita Electric Ind Co Ltd | ソフトウェアのリアルタイム解析方法 |
JP4934267B2 (ja) * | 2003-10-17 | 2012-05-16 | パナソニック株式会社 | コンパイラ装置 |
-
2005
- 2005-11-11 JP JP2005327028A patent/JP4860240B2/ja not_active Expired - Fee Related
-
2006
- 2006-11-13 US US11/595,900 patent/US7877743B2/en not_active Expired - Fee Related
-
2010
- 2010-12-07 US US12/962,075 patent/US8402445B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7877743B2 (en) | 2011-01-25 |
US20110078664A1 (en) | 2011-03-31 |
US20070113220A1 (en) | 2007-05-17 |
JP2007133716A (ja) | 2007-05-31 |
US8402445B2 (en) | 2013-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100070958A1 (en) | Program parallelizing method and program parallelizing apparatus | |
CN100562849C (zh) | 程序转换器件及方法、程序转换执行器件及转换执行方法 | |
CN104123126A (zh) | 一种用于生成合并冲突记录列表的方法和装置 | |
CN100465895C (zh) | 编译器、编译方法 | |
JP2010287213A (ja) | ファイル変換装置、ファイル変換方法およびファイル変換プログラム | |
JP5884657B2 (ja) | プログラム、テストケース生成方法およびテストケース生成装置 | |
JP2008097249A (ja) | プログラム中の命令列をより高速な命令に置換する技術 | |
JP4860240B2 (ja) | 翻訳方法および実行通知命令の埋め込み方法 | |
JP6394341B2 (ja) | 計算装置、計算方法、および計算プログラム | |
JP2007094731A (ja) | コンパイラ装置 | |
Popov et al. | Piecewise holistic autotuning of compiler and runtime parameters | |
JP4039633B2 (ja) | 最適化コンパイラ、コンパイル方法、コンパイラプログラム、及び記録媒体 | |
JP2008250838A (ja) | ソフトウェア生成装置、方法、およびプログラム | |
JP2004070439A (ja) | データの記憶領域への配置を決定するコンパイラ装置及び配置決定方法 | |
JP5240200B2 (ja) | データ処理装置および方法 | |
JP2006301989A (ja) | 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム | |
JPH08227363A (ja) | 分岐命令処理方法 | |
JP2018022433A (ja) | 制御プログラム、装置、及び方法 | |
CN114296930B (zh) | 一种分布式编译方法、系统、电子设备及存储介质 | |
JP3852135B2 (ja) | 形状モデラ用位相要素同定装置およびそれを用いた命令再実行装置 | |
JP2015069220A (ja) | 性能評価プログラム生成装置、方法、及びプログラム | |
KR101894752B1 (ko) | 가상 아키텍쳐 생성 장치, 런타임 시스템, 멀티 코어 시스템 및 그 동작 방법 | |
JP5589726B2 (ja) | ジョブ管理システム、ジョブ管理システム制御方法およびその制御用プログラム | |
CN110532577B (zh) | 数字逻辑电路编译方法及装置 | |
JP2012221147A (ja) | 計算機及びリソース管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081024 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110415 |
|
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: 20111025 |
|
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: 20111102 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4860240 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141111 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |