JP6790869B2 - コンパイル方法、コンパイルプログラム及び情報処理装置 - Google Patents
コンパイル方法、コンパイルプログラム及び情報処理装置 Download PDFInfo
- Publication number
- JP6790869B2 JP6790869B2 JP2017010918A JP2017010918A JP6790869B2 JP 6790869 B2 JP6790869 B2 JP 6790869B2 JP 2017010918 A JP2017010918 A JP 2017010918A JP 2017010918 A JP2017010918 A JP 2017010918A JP 6790869 B2 JP6790869 B2 JP 6790869B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- link
- generated
- object file
- 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.)
- Active
Links
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
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- 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/54—Link editing before load time
-
- 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
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Description
コンピュータに、
リンク時最適化の実行指示を含む第1のコンパイルコマンドを受信した場合、オブジェクトコードを含まず且つソースコードの情報を含む第1のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含む第1のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記リンク時最適化とコンパイルとを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含む第2のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含まない第2のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した当該オブジェクトコードを含む第3のオブジェクトファイルを生成する、
処理を実行させるコンパイルプログラム。
前記コンピュータに、
前記リンク時最適化の実行指示を含まない第2のコンパイルコマンドを受信した場合、前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含み且つ前記ソースコードの情報を含まない第4のオブジェクトファイルを生成し、
前記第2のリンクコマンドを受信した場合、前記第4のオブジェクトファイルをリンカに出力する、
処理をさらに実行させる付記1記載のコンパイルプログラム。
前記コンピュータに、
前記第1のリンクコマンドを受信した場合、前記第4のオブジェクトファイルを前記リンカに出力する、
処理をさらに実行させる付記2記載のコンパイルプログラム。
前記コンピュータに、
前記リンク時最適化の実行指示を含まない第3のリンクコマンドをさらに受信した場合、前記第3のオブジェクトファイルをリンカに出力する、
処理をさらに実行させる付記1記載のコンパイルプログラム。
前記第1のオブジェクトファイルを生成する処理において、
前記オブジェクトコードの生成を省略したことを示す第1の情報を、前記第1のオブジェクトファイルの所定のセクションに書き込み、
前記第3のオブジェクトファイルを生成する処理において、
前記第2のリンクコマンドで指定されたオブジェクトファイルの前記所定のセクションに前記第1の情報が書き込まれているか否かに基づき、前記第2のリンクコマンドで指定されたオブジェクトファイルが前記第1のオブジェクトファイルであるか否かを判定する、
付記1乃至4のいずれか1つ記載のコンパイルプログラム。
コンピュータが、
リンク時最適化の実行指示を含む第1のコンパイルコマンドを受信した場合、オブジェクトコードを含まず且つソースコードの情報を含む第1のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含む第1のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記リンク時最適化とコンパイルとを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含む第2のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含まない第2のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した当該オブジェクトコードを含む第3のオブジェクトファイルを生成する、
処理を実行するコンパイル方法。
リンク時最適化の実行指示を含む第1のコンパイルコマンドを受信した場合、オブジェクトコードを含まず且つソースコードの情報を含む第1のオブジェクトファイルを生成し、前記リンク時最適化の実行指示を含む第1のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記リンク時最適化とコンパイルとを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含む第2のオブジェクトファイルを生成する第1生成部と、
前記リンク時最適化の実行指示を含まない第2のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した当該オブジェクトコードを含む第3のオブジェクトファイルを生成する第2生成部と、
を有する情報処理装置。
111 コンパイル制御部 112 リンク制御部
113 検証部 114 遅延コンパイル制御部
13 データ格納部 14 コンパイラ
141 第1コンパイル実行部 142 第2コンパイル実行部
15 ファイル間最適化部 16 リンカ
Claims (7)
- コンピュータに、
リンク時最適化の実行指示を含む第1のコンパイルコマンドを受信した場合、オブジェクトコードを含まず且つソースコードの情報を含む第1のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含む第1のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記リンク時最適化とコンパイルとを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含む第2のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含まない第2のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した当該オブジェクトコードを含む第3のオブジェクトファイルを生成する、
処理を実行させるコンパイルプログラム。 - 前記コンピュータに、
前記リンク時最適化の実行指示を含まない第2のコンパイルコマンドを受信した場合、前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含み且つ前記ソースコードの情報を含まない第4のオブジェクトファイルを生成し、
前記第2のリンクコマンドを受信した場合、前記第4のオブジェクトファイルをリンカに出力する、
処理をさらに実行させる請求項1記載のコンパイルプログラム。 - 前記コンピュータに、
前記第1のリンクコマンドを受信した場合、前記第4のオブジェクトファイルを前記リンカに出力する、
処理をさらに実行させる請求項2記載のコンパイルプログラム。 - 前記コンピュータに、
前記リンク時最適化の実行指示を含まない第3のリンクコマンドをさらに受信した場合、前記第3のオブジェクトファイルをリンカに出力する、
処理をさらに実行させる請求項1記載のコンパイルプログラム。 - 前記第1のオブジェクトファイルを生成する処理において、
前記オブジェクトコードの生成を省略したことを示す第1の情報を、前記第1のオブジェクトファイルの所定のセクションに書き込み、
前記第3のオブジェクトファイルを生成する処理において、
前記第2のリンクコマンドで指定されたオブジェクトファイルの前記所定のセクションに前記第1の情報が書き込まれているか否かに基づき、前記第2のリンクコマンドで指定されたオブジェクトファイルが前記第1のオブジェクトファイルであるか否かを判定する、
請求項1乃至4のいずれか1つ記載のコンパイルプログラム。 - コンピュータが、
リンク時最適化の実行指示を含む第1のコンパイルコマンドを受信した場合、オブジェクトコードを含まず且つソースコードの情報を含む第1のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含む第1のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記リンク時最適化とコンパイルとを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含む第2のオブジェクトファイルを生成し、
前記リンク時最適化の実行指示を含まない第2のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した当該オブジェクトコードを含む第3のオブジェクトファイルを生成する、
処理を実行するコンパイル方法。 - リンク時最適化の実行指示を含む第1のコンパイルコマンドを受信した場合、オブジェクトコードを含まず且つソースコードの情報を含む第1のオブジェクトファイルを生成し、前記リンク時最適化の実行指示を含む第1のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記リンク時最適化とコンパイルとを実行することで前記オブジェクトコードを生成し、生成した前記オブジェクトコードを含む第2のオブジェクトファイルを生成する第1生成部と、
前記リンク時最適化の実行指示を含まない第2のリンクコマンドを受信した場合、前記第1のオブジェクトファイルに含まれる前記ソースコードの情報に対して前記コンパイルを実行することで前記オブジェクトコードを生成し、生成した当該オブジェクトコードを含む第3のオブジェクトファイルを生成する第2生成部と、
を有する情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017010918A JP6790869B2 (ja) | 2017-01-25 | 2017-01-25 | コンパイル方法、コンパイルプログラム及び情報処理装置 |
US15/861,724 US10489131B2 (en) | 2017-01-25 | 2018-01-04 | Efficient compilation for link time optimization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017010918A JP6790869B2 (ja) | 2017-01-25 | 2017-01-25 | コンパイル方法、コンパイルプログラム及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018120389A JP2018120389A (ja) | 2018-08-02 |
JP6790869B2 true JP6790869B2 (ja) | 2020-11-25 |
Family
ID=62906454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017010918A Active JP6790869B2 (ja) | 2017-01-25 | 2017-01-25 | コンパイル方法、コンパイルプログラム及び情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10489131B2 (ja) |
JP (1) | JP6790869B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110119274A (zh) * | 2018-02-05 | 2019-08-13 | 北京智明星通科技股份有限公司 | 一种数据编译的方法、装置以及电子终端、计算机可读存储介质 |
CN112698835B (zh) * | 2021-01-05 | 2023-08-18 | 潍柴动力股份有限公司 | 一种单片机编译链接方法、装置、计算机设备及存储介质 |
US11550554B2 (en) | 2021-01-07 | 2023-01-10 | Microsoft Technology Licensing, Llc | Merged machine-level intermediate representation optimizations |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850554A (en) * | 1995-12-29 | 1998-12-15 | Intel Corporation | Compiler tool set for efficiently generating and easily managing multiple program versions of different types |
JPH10275088A (ja) | 1997-03-31 | 1998-10-13 | Hitachi Ltd | リンク最適化方法 |
JP2000267860A (ja) | 1999-03-17 | 2000-09-29 | Matsushita Electric Ind Co Ltd | アセンブラ最適化方法およびその装置 |
US6769115B1 (en) * | 2000-05-01 | 2004-07-27 | Emc Corporation | Adaptive interface for a software development environment |
US7086043B2 (en) | 2002-10-29 | 2006-08-01 | International Business Machines Corporation | Compiler apparatus and method for unrolling a superblock in a computer program |
US7607123B2 (en) * | 2004-09-21 | 2009-10-20 | Hewlett-Packard Development Company, L.P. | Systems and methods for validating debug information for optimized code |
JP2010231478A (ja) * | 2009-03-27 | 2010-10-14 | Toshiba Corp | コンパイル方法、コンパイルプログラムおよび半導体集積回路製造方法 |
US20160357530A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Method and apparatus for intermediate representation of applications |
US10061571B2 (en) * | 2015-11-16 | 2018-08-28 | Qualcomm Innovation Center, Inc. | System and method for link time optimization |
US10248545B2 (en) * | 2016-02-17 | 2019-04-02 | Parasoft Corporation | Method for tracking high-level source attribution of generated assembly language code |
JP6759851B2 (ja) | 2016-08-22 | 2020-09-23 | 富士通株式会社 | プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム |
-
2017
- 2017-01-25 JP JP2017010918A patent/JP6790869B2/ja active Active
-
2018
- 2018-01-04 US US15/861,724 patent/US10489131B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10489131B2 (en) | 2019-11-26 |
US20180210718A1 (en) | 2018-07-26 |
JP2018120389A (ja) | 2018-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4909877B2 (ja) | デバッグ装置及びデバッグ方法 | |
US6233733B1 (en) | Method for generating a Java bytecode data flow graph | |
US10133560B2 (en) | Link time program optimization in presence of a linker script | |
JP6790869B2 (ja) | コンパイル方法、コンパイルプログラム及び情報処理装置 | |
US10269087B2 (en) | Language translation using preprocessor macros | |
US20060143523A1 (en) | Apparatus and method for debugging embedded software | |
JP2004164554A (ja) | プログラム実行監視装置および方法 | |
US20050188362A1 (en) | Method and system for performing link-time code optimization without additional code analysis | |
JP2007304840A (ja) | コンパイル方法、デバッグ方法、コンパイルプログラムおよびデバッグプログラム | |
US8930925B2 (en) | Method for enabling compilation of a Cobol source program utilizing a two-stage compilation process, the Cobol source program including a mix of Cobol, C++ or JAVA statements, and optional OpenMP directives | |
JPH0926884A (ja) | バイナリ操作を必要とするタスク中に必要なフロー情報を使用可能とする方法および装置 | |
JP6759851B2 (ja) | プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
JP4719415B2 (ja) | 情報処理システム及びコード生成方法 | |
JP2016224724A (ja) | 情報処理装置、コンパイル方法、及びコンパイラプログラム | |
JP2017091070A (ja) | 実行可能コード生成プログラムおよび実行可能コード生成装置 | |
US20110099534A1 (en) | Information processing apparatus, execution program operation modification method, and recording medium | |
JP5021584B2 (ja) | マイコンシミュレータ、そのシミュレーション方法、プログラム、及びコンピュータ読み取り可能な媒体 | |
JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JP6326838B2 (ja) | プログラム処理装置、プログラム処理方法、及びプログラム処理プログラム | |
JP4594704B2 (ja) | プログラム開発支援システム、プログラムおよび記録媒体 | |
JP2002259121A (ja) | ソースラインデバッグ装置 | |
JP3956113B2 (ja) | データ処理装置及びプログラム | |
JP2006221556A (ja) | プログラム実行装置、プログラム実行方法およびプログラム | |
JP2007188366A (ja) | コンパイル装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200824 |
|
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: 20201006 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6790869 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |