JP2008102740A - 最適化処理方法、及びその言語処理系 - Google Patents
最適化処理方法、及びその言語処理系 Download PDFInfo
- Publication number
- JP2008102740A JP2008102740A JP2006284733A JP2006284733A JP2008102740A JP 2008102740 A JP2008102740 A JP 2008102740A JP 2006284733 A JP2006284733 A JP 2006284733A JP 2006284733 A JP2006284733 A JP 2006284733A JP 2008102740 A JP2008102740 A JP 2008102740A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- references
- true
- result
- code
- 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.)
- Granted
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
計算機システムで実行される言語処理系における最適化処理技術のおいて、冗長な参照の比較とその結果に応じた分岐を効率的に除去する。
【解決手段】
計算機システムのプロセッサで実行される言語処理系で、分岐処理(903)のうち,まず2つの参照が同じか比較し,結果が真なら分岐し,さもなくば、個々の参照が指示するインスタンスの等価性を検証するメソッドを呼び出し,返戻値が真ならば分岐するものについて,参照間の比較結果が真になる確率が十分小さく(904),かつ,参照間の比較とその結果に応じた分岐を除去しても,プログラムの実行結果が変化しない場合(906)について,参照間の比較とその結果に応じた分岐を除去(908)する。
【選択図】図9
Description
Claims (5)
- 記憶部と処理部とを有する計算機システムの前記処理部で実行されるコンパイラにおける最適化処理方法であって,
前記コンパイラによるコンパイル対象のコード中にある条件分岐のうち,2つの参照の指示するインスタンスが等価か否かを参照間の比較演算によって確認し,前記演算結果が真であった場合に分岐先に分岐し,真でなければ,前記2つの参照の指示するインスタンスの等価性を検証するためのメソッドを呼び出し,前記メソッドの返戻値が真であった場合に前記分岐先に分岐するものを求め,
求めた前記条件分岐から,前記参照間の比較演算と前記演算結果に応じた分岐を除去しても,当該実行結果が変化しないか否かを調査し,
前記調査の結果が真ならば,前記条件分岐から,前記参照間の比較演算と前記演算結果が真であった場合に分岐する処理を除去する
最適化処理方法。 - 請求項1記載の最適化処理方法であって,
前記参照間の比較演算と,前記演算結果が真であった場合に分岐する処理を除去するより前に,実行時プロファイルから,前記参照間の比較演算の結果が真となった頻度を求め,前記頻度が小さいと判断した場合に,前記除去をおこなう
最適化処理方法。 - 請求項1記載の最適化処理方法であって,
前記調査では、前記メソッドが必ず真を返戻し,返戻後の実行に影響をおよぼす副作用を生じないか否かを調べる
最適化処理方法。 - 記憶部と処理部とを有する計算機システムのための言語処理系であって、
前記処理部を、
コンパイル対象のコード中にある条件分岐のうち,2つの参照の指示するインスタンスが等価か否かを参照間の比較演算によって確認し,前記演算結果が真であった場合に分岐先に分岐し,真でなければ,前記2つの参照の指示するインスタンスの等価性を検証するためのメソッドを呼び出し,前記メソッドの返戻値が真であった場合に前記分岐先に分岐するものを求め,
求めた前記条件分岐から,前記参照間の比較演算と前記演算結果に応じた分岐を除去しても,実行結果が変化しないか否かを調査し,
前記調査の結果が真ならば,前記条件分岐から,前記参照間の比較演算と前記演算結果が真であった場合に分岐する処理を除去する
よう実行させる
言語処理系。 - 請求項4記載の言語処理系であって,
前記言語処理系は、静的コンパイラと、前記中間コードを実行するインタプリタと動的コンパイラと実行時ライブラリとから構成される実行環境とからなり、
前記処理部を、
前記静的コンパイラによって、前記ソースコードを前記中間コードへ変換し、
前記インタプリタが、前記中間コードが含む分岐処理を実行する際、前記分岐に関する情報を実行プロファイルに記録し、
前記動的コンパイラが、求めた前記条件分岐から,前記参照間の比較演算と前記演算結果に応じた分岐を除去しても,前記実行結果が変化しないか否かを調査するに際し、前記実行時プロファイルを参照する
よう実行させる
言語処理系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006284733A JP5016288B2 (ja) | 2006-10-19 | 2006-10-19 | 最適化処理方法、及びその言語処理系 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006284733A JP5016288B2 (ja) | 2006-10-19 | 2006-10-19 | 最適化処理方法、及びその言語処理系 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008102740A true JP2008102740A (ja) | 2008-05-01 |
JP5016288B2 JP5016288B2 (ja) | 2012-09-05 |
Family
ID=39437025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006284733A Expired - Fee Related JP5016288B2 (ja) | 2006-10-19 | 2006-10-19 | 最適化処理方法、及びその言語処理系 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5016288B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218171B2 (en) | 2012-05-21 | 2015-12-22 | International Business Machines Corporation | Method, program, and system for code optimization |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62259141A (ja) * | 1986-05-06 | 1987-11-11 | Hitachi Ltd | コンパイル方式 |
JPH07114473A (ja) * | 1993-10-19 | 1995-05-02 | Fujitsu Ltd | コンパイラの命令列最適化方法 |
JPH07234790A (ja) * | 1994-02-23 | 1995-09-05 | Nec Corp | プログラム変換処理装置およびプログラム変換処理方法 |
JP2000222220A (ja) * | 1999-01-28 | 2000-08-11 | Internatl Business Mach Corp <Ibm> | 動的コンパイル時期決定方法、バイトコード実行モード選択方法、及びコンピュータ |
JP2000242504A (ja) * | 1999-02-19 | 2000-09-08 | Nec Corp | コンパイラ装置 |
-
2006
- 2006-10-19 JP JP2006284733A patent/JP5016288B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62259141A (ja) * | 1986-05-06 | 1987-11-11 | Hitachi Ltd | コンパイル方式 |
JPH07114473A (ja) * | 1993-10-19 | 1995-05-02 | Fujitsu Ltd | コンパイラの命令列最適化方法 |
JPH07234790A (ja) * | 1994-02-23 | 1995-09-05 | Nec Corp | プログラム変換処理装置およびプログラム変換処理方法 |
JP2000222220A (ja) * | 1999-01-28 | 2000-08-11 | Internatl Business Mach Corp <Ibm> | 動的コンパイル時期決定方法、バイトコード実行モード選択方法、及びコンピュータ |
JP2000242504A (ja) * | 1999-02-19 | 2000-09-08 | Nec Corp | コンパイラ装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218171B2 (en) | 2012-05-21 | 2015-12-22 | International Business Machines Corporation | Method, program, and system for code optimization |
US9996327B2 (en) | 2012-05-21 | 2018-06-12 | International Business Machines Corporation | Method, program, and system for code optimization |
US10216499B2 (en) | 2012-05-21 | 2019-02-26 | International Business Machines Corporation | Method, program, and system for code optimization |
Also Published As
Publication number | Publication date |
---|---|
JP5016288B2 (ja) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3790683B2 (ja) | コンピュータ装置、その例外処理プログラム及びコンパイル方法 | |
US6412109B1 (en) | Method for optimizing java bytecodes in the presence of try-catch blocks | |
US11216258B2 (en) | Direct function call substitution using preprocessor | |
JP5415557B2 (ja) | デバッギングのためのユーザ・スクリプト・コードの変換 | |
US7725883B1 (en) | Program interpreter | |
EP0905617B1 (en) | Method for generating a java bytecode data flow graph | |
JP3284956B2 (ja) | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 | |
US9645912B2 (en) | In-place function modification | |
US7917899B2 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
US7320121B2 (en) | Computer-implemented system and method for generating embedded code to add functionality to a user application | |
US20110067018A1 (en) | Compiler program, compilation method, and computer system | |
US8056061B2 (en) | Data processing device and method using predesignated register | |
JP5303795B2 (ja) | アプリケーションの解析方法、解析システム及び解析プログラム | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
US20010039653A1 (en) | Program conversion method, program conversion apparatus, storage medium for storing program conversion program and program conversion program | |
CN105786465A (zh) | 一种脚本语言执行方法及装置 | |
JP5016288B2 (ja) | 最適化処理方法、及びその言語処理系 | |
US9317308B2 (en) | Augmenting profile data with information gathered from a JIT compiler | |
JP5891976B2 (ja) | コンパイル実行・管理方法、装置、及びプログラム | |
RU2390821C1 (ru) | Способ динамической инструментации | |
JP2008102748A (ja) | プログラム実行方法、言語処理系、及び実行時ルーチン | |
JP2009259078A (ja) | バッファオーバーフロー検出方法、バッファオーバーフロー検出プログラム、およびバッファオーバーフロー検出装置 | |
JP2007323358A (ja) | コンパイラプログラムを記録する媒体、コンパイル方法及びこれを伴う情報処理装置 | |
JP3018783B2 (ja) | コンパイル方式 | |
JP2005301415A (ja) | コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120511 |
|
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: 20120605 |
|
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: 20120608 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150615 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 |