JP4632666B2 - コンパイラ生成プログラムコードの最適化 - Google Patents
コンパイラ生成プログラムコードの最適化 Download PDFInfo
- Publication number
- JP4632666B2 JP4632666B2 JP2003584915A JP2003584915A JP4632666B2 JP 4632666 B2 JP4632666 B2 JP 4632666B2 JP 2003584915 A JP2003584915 A JP 2003584915A JP 2003584915 A JP2003584915 A JP 2003584915A JP 4632666 B2 JP4632666 B2 JP 4632666B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- library
- program code
- program
- compiler
- 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
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/4434—Reducing the memory space required by the program code
- G06F8/4436—Exlining; Procedural abstraction
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)
- Stored Programmes (AREA)
Description
ダブリュー・ランクル(W. Rankl)及びダブリュー・エッフィング(W. Effing)著,「ICカードハンドブック(Handbuch der Chipkarten)」,第3版,ハンザー・ヴァーラグ(Hanser Verlag),1999年,第3.4節
本発明にしたがうコンピュータプログラム製品及び本発明にしたがう携帯型データ記憶媒体は、上に説明された特徴/または方法に関する特許請求項に述べられる特徴に相当する特徴をもって開発されることが好ましい。
12 プロセッサコア
24,26 プログラム領域
28 既定ライブラリ
30x ライブラリコードフラグメント
34 高水準言語ソースコード
36 コンパイラ
38 コンパイラ生成プログラムコード
42 プログラムコードフラグメント
44 最適化済プログラムコード
46 サブルーチンコール命令
Claims (12)
- プロセッサコア(12)並びに第1及び第2のメモリ領域(24,26)を有する携帯型データ記憶媒体(10)を対象とするコンパイラ生成プログラムコード(38)を最適化するための方法において、
− 前記第1のメモリ領域(24)は最適化されたプログラムコード(44)を受け取るように準備され、
− 前記第2のメモリ領域(26)は多数のライブラリコードフラグメント(30x)を有する既定のライブラリ(28)を受け取るように準備され、
前記既定のライブラリ(28)の内容が、最適化実行で処理される前記コンパイラ生成プログラムコード(38)から独立したものであり、
前記方法は、最適化プログラム(40)を実行する汎用コンピュータが、前記コンパイラ生成プログラムコード(38)から、少なくともそれぞれの効果に関して、前記ライブラリコードフラグメント(30x)のそれぞれ1つに対応しているプログラムコードフラグメント(42)を探す検索を行ない、これにより見いだされた前記プログラムコードフラグメント(42)を、前記汎用コンピュータが、前記対応するライブラリコードフラグメント(30x)のそれぞれ1つのコールで置き換える最適化の手順を含むものである
ことを特徴とする方法。 - プログラムコードフラグメント(42)とライブラリコードフラグメント(30x)の実行可能な機械コードとしての形態が一致する場合にのみ、前記汎用コンピュータが、プログラムコードフラグメント(42)をライブラリコードフラグメント(30x)に置き換えることを特徴とする請求項1に記載の方法。
- 前記コンパイラ生成プログラムコード(38)がアッセンブラソースコードの形態で存在し、前記最適化の手順がソースコードレベルで実施されることを特徴とする請求項1に記載の方法。
- 前記ライブラリコードフラグメント(30x)の内の少なくともいくつかが、パラメータとして1つまたはそれ以上のメモリアドレス又は数値を伴って呼び出されるものであることを特徴とする請求項1に記載の方法。
- 前記汎用コンピュータが、前記プログラムコードフラグメント(42)を、前記対応するライブラリコードフラグメント(30x)へのサブルーチンコール命令(46)に置き換えることを特徴とする請求項1から4のいずれか1項に記載の方法。
- 前記プログラムコードフラグメント(42)がサブルーチン復帰命令で終わっている場合は、前記プログラムコードフラグメント(42)を、前記対応するライブラリコードフラグメント(30x)へのジャンプ命令に置き換えることを特徴とする請求項5に記載の方法。
- 前記既定のライブラリ(28)が、前記携帯型データ記憶媒体(10)のハードウエア及び/または前記携帯型データ記憶媒体(10)のオペレーティングシステム及び/または前記コンパイラ生成プログラムコード(38)の生成に用いられるコンパイラ(36)に依存するライブラリコードフラグメント(30x)を含むように設計されていることを特徴とする請求項1から6のいずれか1項に記載の方法。
- 前記第1のプログラム領域(24)が電気的にプログラム可能であることを特徴とする請求項1から7のいずれか1項に記載の方法。
- 前記第2のメモリ領域(26)が、マスクプログラム可能であることを特徴とする請求項1から8のいずれか1項に記載の方法。
- 前記携帯型データ記憶媒体において前記第1のメモリ領域(24)が占有するメモリセル当りのチップ面積が前記第2のメモリ領域(26)により占有されるメモリセル当りのチップ面積より大きいことを特徴とする請求項1から9のいずれか1項に記載の方法。
- 請求項1から10のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
- 高水準言語ソースコード(34)を前記コンパイラ生成プログラムコード(38)に変換する手順をコンピュータに実行させるためのコンパイラ(36)をさらに有することを特徴とする請求項10に記載のコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10216602A DE10216602A1 (de) | 2002-04-15 | 2002-04-15 | Optimierung von compilergeneriertem Programmcode |
PCT/EP2003/003803 WO2003088039A2 (de) | 2002-04-15 | 2003-04-11 | Optimierung von compilergeneriertem programmcode |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005522772A JP2005522772A (ja) | 2005-07-28 |
JP2005522772A5 JP2005522772A5 (ja) | 2009-10-01 |
JP4632666B2 true JP4632666B2 (ja) | 2011-02-16 |
Family
ID=28685070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003584915A Expired - Fee Related JP4632666B2 (ja) | 2002-04-15 | 2003-04-11 | コンパイラ生成プログラムコードの最適化 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7805718B2 (ja) |
EP (1) | EP1497722B1 (ja) |
JP (1) | JP4632666B2 (ja) |
CN (1) | CN100370424C (ja) |
AU (1) | AU2003222291A1 (ja) |
DE (1) | DE10216602A1 (ja) |
ES (1) | ES2442842T3 (ja) |
IL (1) | IL164582A (ja) |
WO (1) | WO2003088039A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004014885B4 (de) * | 2004-03-26 | 2016-04-14 | Giesecke & Devrient Gmbh | Verfahren zur Optimierung eines Programms eines tragbaren Datenträgers |
US20060242631A1 (en) * | 2005-04-22 | 2006-10-26 | Andersen Jakob R | Process and system for sharing program fragments |
WO2007099320A1 (en) * | 2006-03-01 | 2007-09-07 | Symbian Software Limited | Code size reduction by outlining specific functions in a library |
WO2007099322A2 (en) * | 2006-03-01 | 2007-09-07 | Symbian Software Limited | Procedural abstraction for executable code |
GB0607068D0 (en) * | 2006-04-07 | 2006-05-17 | Symbian Software Ltd | Improvement relating to method of embedding software in computing devices |
WO2007099324A1 (en) * | 2006-03-01 | 2007-09-07 | Symbian Software Limited | Duplicate code detection |
JP4968325B2 (ja) * | 2007-03-08 | 2012-07-04 | 富士通セミコンダクター株式会社 | ソフトウェア最適化装置、および最適化方法 |
US8359586B1 (en) * | 2007-08-20 | 2013-01-22 | The Mathworks, Inc. | Code generation |
CN102998541B (zh) * | 2011-09-08 | 2015-04-15 | 立讯精密工业(昆山)有限公司 | 连接线自动测量方法及装置 |
JP2013210920A (ja) * | 2012-03-30 | 2013-10-10 | Nec Corp | コンパイル装置、コンパイル方法及びコンパイラ |
CN102902548B (zh) * | 2012-10-24 | 2016-08-03 | 中国科学院声学研究所 | 汇编级内存复制标准库函数的生成方法及装置 |
CN103049302B (zh) * | 2012-12-28 | 2016-03-16 | 中国科学院声学研究所 | 由程序生成优化的strcpy标准库函数汇编代码的方法 |
CN103901810B (zh) * | 2012-12-31 | 2017-04-12 | 施耐德电器工业公司 | 可编程控制器用户应用的优化系统及方法 |
WO2014209337A1 (en) * | 2013-06-28 | 2014-12-31 | Intel Corporation | Compatibility and optimization of web applications across independent application stores |
GB2505564B (en) | 2013-08-02 | 2015-01-28 | Somnium Technologies Ltd | Software development tool |
US9280339B1 (en) * | 2013-12-12 | 2016-03-08 | Amazon Technologies, Inc. | Class replacer during application installation |
US9495138B1 (en) * | 2016-01-04 | 2016-11-15 | International Business Machines Corporation | Scheme for verifying the effects of program optimizations |
CN106874577A (zh) * | 2017-01-20 | 2017-06-20 | 上海新储集成电路有限公司 | 一种存储器编译器 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55137360A (en) * | 1979-04-16 | 1980-10-27 | Nissan Motor Co Ltd | Controller for automobile |
JPH0795275B2 (ja) * | 1987-11-13 | 1995-10-11 | 富士通株式会社 | コンパイル処理装置 |
JPH03291786A (ja) * | 1990-04-10 | 1991-12-20 | Matsushita Electric Ind Co Ltd | Icカード |
US5339428A (en) * | 1991-09-04 | 1994-08-16 | Digital Equipment Corporation | Compiler allocating a register to a data item used between a use and store of another data item previously allocated to the register |
JPH08263299A (ja) | 1995-03-27 | 1996-10-11 | Sanyo Electric Co Ltd | プログラム変換方法 |
US5794044A (en) * | 1995-12-08 | 1998-08-11 | Sun Microsystems, Inc. | System and method for runtime optimization of private variable function calls in a secure interpreter |
US5815721A (en) * | 1996-04-25 | 1998-09-29 | Hewlett-Packard Company | Method and apparatus for optimizing complex control structures using abstract web patterns |
JP2000514584A (ja) * | 1996-10-25 | 2000-10-31 | シュルンベルジェ システーム | 高級プログラミング言語を用いたマイクロコントローラ |
US5903795A (en) * | 1997-05-23 | 1999-05-11 | Eastman Kodak Company | Photographic processor |
US5903759A (en) * | 1997-06-04 | 1999-05-11 | 3 Com Corporation | Software performance analysis using hardware analyzer |
AU2069199A (en) | 1998-01-22 | 1999-08-09 | Mondex International Limited | Codelets |
JPH11327887A (ja) * | 1998-05-13 | 1999-11-30 | Nec Corp | 自動部品化機能付コンパイラシステムおよび記録媒体 |
FR2783065B1 (fr) * | 1998-09-07 | 2001-01-19 | Rue Cartes Et Systemes De | Procede de compression de code interpretable |
US6263429B1 (en) * | 1998-09-30 | 2001-07-17 | Conexant Systems, Inc. | Dynamic microcode for embedded processors |
FR2785695B1 (fr) * | 1998-11-06 | 2003-01-31 | Bull Cp8 | Procede de compactage d'un programme de type code objet intermediaire executable dans un systeme embarque muni de ressources de traitement de donnees, systeme compacteur et systeme embarque multi-applications correspondants |
JP3507728B2 (ja) * | 1999-06-07 | 2004-03-15 | エヌイーシーソフト沖縄株式会社 | メモリ削減方法および装置 |
JP4041248B2 (ja) * | 1999-07-09 | 2008-01-30 | 松下電器産業株式会社 | コンパイラ装置、コンパイルプログラムが記録されたコンピュータ読み取り可能な記録媒体及びコンパイル方法 |
US6718543B2 (en) * | 1999-11-08 | 2004-04-06 | Hewlett-Packard Development Company, L.P. | Method and apparatus for optimization of the performance of an application program in a computer system while preserving the system behavior |
JP3650713B2 (ja) * | 2000-02-04 | 2005-05-25 | 松下電器産業株式会社 | プログラム変換装置、プログラム変換方法及びプログラム記憶媒体 |
-
2002
- 2002-04-15 DE DE10216602A patent/DE10216602A1/de not_active Withdrawn
-
2003
- 2003-04-11 ES ES03717297.0T patent/ES2442842T3/es not_active Expired - Lifetime
- 2003-04-11 JP JP2003584915A patent/JP4632666B2/ja not_active Expired - Fee Related
- 2003-04-11 WO PCT/EP2003/003803 patent/WO2003088039A2/de active Application Filing
- 2003-04-11 EP EP03717297.0A patent/EP1497722B1/de not_active Expired - Lifetime
- 2003-04-11 AU AU2003222291A patent/AU2003222291A1/en not_active Abandoned
- 2003-04-11 CN CNB038084724A patent/CN100370424C/zh not_active Expired - Fee Related
- 2003-04-11 US US10/511,688 patent/US7805718B2/en not_active Expired - Fee Related
-
2004
- 2004-10-14 IL IL164582A patent/IL164582A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP1497722B1 (de) | 2013-11-13 |
IL164582A (en) | 2012-03-29 |
WO2003088039A3 (de) | 2004-11-04 |
CN100370424C (zh) | 2008-02-20 |
ES2442842T3 (es) | 2014-02-13 |
AU2003222291A1 (en) | 2003-10-27 |
DE10216602A1 (de) | 2003-10-30 |
US7805718B2 (en) | 2010-09-28 |
IL164582A0 (ja) | 2005-12-18 |
JP2005522772A (ja) | 2005-07-28 |
EP1497722A2 (de) | 2005-01-19 |
WO2003088039A2 (de) | 2003-10-23 |
CN1703674A (zh) | 2005-11-30 |
US20050235268A1 (en) | 2005-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4632666B2 (ja) | コンパイラ生成プログラムコードの最適化 | |
JP5118745B2 (ja) | メモリアクセス命令のベクトル化 | |
US7207038B2 (en) | Constructing control flows graphs of binary executable programs at post-link time | |
US8341614B2 (en) | Memory management for closures | |
JPH10320214A (ja) | コンパイルシステム及びコンピュータプログラム製品 | |
JPH04322329A (ja) | 多機種対応型情報処理システム、および、方法 | |
US8555260B1 (en) | Direct hardware processing of internal data structure fields | |
JPH01201729A (ja) | デコード方法 | |
US6738966B1 (en) | Compiling device, computer-readable recording medium on which a compiling program is recorded and a compiling method | |
JP4638484B2 (ja) | データ処理装置におけるデータ整合性 | |
JP2005202936A (ja) | Java(登録商標)仮想マシンの性能を向上させる方法及びその方法により動作されるシステム | |
CN113468079B (zh) | 内存访问方法及装置 | |
CN101334737A (zh) | 一种嵌入式设备的启动或复位方法 | |
US8423984B2 (en) | System and method generating object code | |
JP2000010790A (ja) | グロ―バル衝突判定用のユニタリデ―タ構造体のシステム、方法及びコンピュ―タプログラム製品 | |
WO2007070578A1 (en) | Partitioning of non-volatile memories for vectorization | |
US20130275688A1 (en) | Data processing device and method | |
WO2020166159A1 (ja) | マイクロプロセッサ及びその動作方法 | |
US6442058B2 (en) | Control circuit and semiconductor device including same | |
KR100478463B1 (ko) | 응용 프로그램의 동적링크 방법 | |
US6886159B2 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
CN115906014A (zh) | 一种数据处理方法及相关装置 | |
JP2006293673A (ja) | マイクロプロセッサおよびその制御方法 | |
US7565646B2 (en) | Method for compression of object code interpreted by tree-structured expression factorization | |
KR100470822B1 (ko) | 마이크로 컨트롤러의 메모리 어드레싱 방법 및 페이지매핑장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060307 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090210 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090511 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090518 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20090810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100622 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100922 |
|
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: 20101019 |
|
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: 20101116 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131126 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |