Nothing Special   »   [go: up one dir, main page]

JP2011107848A - Device, method and program for predicting size of executable object - Google Patents

Device, method and program for predicting size of executable object Download PDF

Info

Publication number
JP2011107848A
JP2011107848A JP2009260469A JP2009260469A JP2011107848A JP 2011107848 A JP2011107848 A JP 2011107848A JP 2009260469 A JP2009260469 A JP 2009260469A JP 2009260469 A JP2009260469 A JP 2009260469A JP 2011107848 A JP2011107848 A JP 2011107848A
Authority
JP
Japan
Prior art keywords
size
global variable
area
code
global
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.)
Pending
Application number
JP2009260469A
Other languages
Japanese (ja)
Inventor
Ichiro Isu
一郎 伊須
Satoshi Okamura
聡 岡村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009260469A priority Critical patent/JP2011107848A/en
Publication of JP2011107848A publication Critical patent/JP2011107848A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To support the efficient arrangement of wide range variables in a short direct addressing validating memory region (first region). <P>SOLUTION: A compiler 1 translates a source code 2 to generate a rearrangeable object 4, and generates a wide range variable reference information file 3 based on a memory reference instruction size table 9. A wide range variable list display part 5 predicts the size of an executable object based on the generated object 4 and the file 3. The table 9 describes the changing amounts of an instruction size due to the difference of the arrangement region of the wide range variables. The file 3 describes the changing amounts of a reference instruction size due to the difference of the arrangement region of the wide range variables. On the basis of the input of the changed wide range variables, the code size difference of the changed wide range variables is obtained from the calculation result, and the size of the object is adjusted, and the prediction value of the executable object size is calculated and displayed. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、実行可能オブジェクトのサイズ予測装置、そのサイズ予測方法、及びそのプログラムに関する。   The present invention relates to an executable object size prediction apparatus, a size prediction method thereof, and a program thereof.

少ないコード量でアクセスできる任意のメモリ領域である、ショートダイレクトアドレッシング可能メモリ領域が知られている。ショートダイレクトアドレッシング可能メモリ領域を持つデバイスの場合、ショートダイレクトアドレッシング可能メモリ領域をアクセスする命令は、通常のメモリ領域をアクセスする命令よりも命令サイズが小さい。そのため、ショートダイレクトアドレッシング可能メモリ領域に配置された広域変数は、通常のアドレッシングでアクセスするメモリ領域に配置された変数よりも少ないコード量でアクセスすることができる。(特許文献1、非特許文献1)。そのため、プログラム中からショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を適切に選び出すことにより、プログラムのコード効率を向上させることができる。   A short direct addressable memory area, which is an arbitrary memory area that can be accessed with a small code amount, is known. In the case of a device having a short direct addressable memory area, an instruction size for accessing the short direct addressable memory area is smaller than an instruction size for accessing a normal memory area. For this reason, the global variable arranged in the short direct addressable memory area can be accessed with a smaller code amount than the variable arranged in the memory area accessed by the normal addressing. (Patent Document 1, Non-Patent Document 1). Therefore, it is possible to improve the code efficiency of the program by appropriately selecting the global variable to be arranged in the short direct addressable memory area from the program.

ショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を指定する方法として、ソースコード中で広域変数にショートダイレクトアドレッシング可能メモリ領域へ配置することを指示する記述を追記する方法がある(非特許文献2)。以下、図1を参照して、そのショートダイレクトアドレッシング可能メモリ領域配に広域変数を配置指定するための情報処理システムについて説明する。図1は、情報処理システムの構成を示すブロック図である。この図は、情報処理システムの構成を示し、更にショートダイレクトアドレッシング可能メモリ領域に、広域変数を配置指定するときの各ツールと各入出力ファイルとの関係を示している。この情報処理システムは、コンパイラ101とリンカ107とを具備している。コンパイラ101は、入力されたソースコード102−1〜102−3を翻訳し、再配置可能オブジェクト104−1〜104−3を生成する。このとき、ソースコード102中でショートダイレクトアドレッシング可能メモリ領域に配置する指定がなされている広域変数に対しては、ショートダイレクトアドレッシングでアクセスするコードを生成する。リンカ107は、コンパイラ101で生成された複数の再配置可能オブジェクト104−1〜104−3を結合し、外部参照の解決、絶対アドレスの決定を行い、実行可能オブジェクト108を生成する。   As a method for designating a global variable to be arranged in a short direct addressable memory area, there is a method of adding a description instructing the global variable to be arranged in the short direct addressable memory area in the source code (Non-patent Document 2). . Hereinafter, an information processing system for designating a wide-area variable in the short direct addressable memory area arrangement will be described with reference to FIG. FIG. 1 is a block diagram showing the configuration of the information processing system. This figure shows the configuration of the information processing system, and further shows the relationship between each tool and each input / output file when a global variable is specified in the short direct addressable memory area. This information processing system includes a compiler 101 and a linker 107. The compiler 101 translates the input source code 102-1 to 102-3 and generates relocatable objects 104-1 to 104-3. At this time, a code to be accessed by short direct addressing is generated for a wide-area variable designated to be arranged in the short direct addressable memory area in the source code 102. The linker 107 combines the plurality of relocatable objects 104-1 to 104-3 generated by the compiler 101, resolves external references and determines absolute addresses, and generates an executable object 108.

次に、上記情報処理システムの動作について説明する。図2は、上記情報処理システムの動作を示すフローチャートである。この図は、ショートダイレクトアドレッシング可能メモリ領域に、広域変数を配置するための処理の流れを示している。まず、ソースコード102−1〜102−3について、コンパイルエラーやサイズオーバー以外のリンクエラーは解決されているものとする。ユーザは、情報処理システムへの入力操作により、ソースコード102−1〜102−3を修正し、広域変数にショートダイレクトアドレッシング可能メモリ領域へ配置することを指示する記述を追記する(ステップS101)。次に、ユーザは、情報処理システムへの入力操作により、ソースコード102−1〜102−3のビルドを実行する(ステップS102)。続いて、コンパイラ101は、ソースコード102−1〜102−3をコンパイルして再配置可能オブジェクト104−1〜104−3を生成する(ステップS103)。次に、リンカ107は、再配置可能オブジェクトをリンクして、実行可能オブジェクト108を生成する(ステップS104)。その後、ユーザは、実行可能オブジェクト108のコードサイズが所定の条件を満足するか否かを判定する(ステップS105)。判定の結果、実行可能オブジェクト108のコードサイズが所定の条件を満足しない場合(ステップS105:NO)、上記ステップS101〜S104を繰り返す。実行可能オブジェクト108のコードサイズが所定の条件を満足する場合(ステップS105:YES)、ショートダイレクトアドレッシング可能メモリ領域に広域変数を配置するための処理を終了する。   Next, the operation of the information processing system will be described. FIG. 2 is a flowchart showing the operation of the information processing system. This figure shows the flow of processing for allocating a global variable in a short direct addressable memory area. First, regarding the source code 102-1 to 102-3, it is assumed that a link error other than a compile error or an oversize has been solved. The user modifies the source code 102-1 to 102-3 by an input operation to the information processing system, and adds a description instructing to be arranged in the short direct addressable memory area in the wide area variable (step S101). Next, the user executes the build of the source code 102-1 to 102-3 by an input operation to the information processing system (step S102). Subsequently, the compiler 101 compiles the source codes 102-1 to 102-3 to generate relocatable objects 104-1 to 104-3 (step S103). Next, the linker 107 links the relocatable objects to generate an executable object 108 (step S104). Thereafter, the user determines whether or not the code size of the executable object 108 satisfies a predetermined condition (step S105). As a result of the determination, when the code size of the executable object 108 does not satisfy the predetermined condition (step S105: NO), the above steps S101 to S104 are repeated. If the code size of the executable object 108 satisfies a predetermined condition (step S105: YES), the process for allocating the global variable in the short direct addressable memory area is terminated.

その他関連する技術として、特許文献2(特開2006−311610号公報)及び特許文献3(特開平09−186703号公報)には、有線接続通信網システムと無線アクセスシステムとからなる、データをセル(C1〜C10)として運ぶ遠隔通信システムにおいて、該無線システム内での内部制御のためにセル向けデータを転送するためにセルのヘッダフィールドに使用可能なスペースが残るように、該無線システム内ではショートアドレッシング方式を使用する技術が記載されている。特許文献4(特開平10−027129号公報)には、増設RAMが存在する場合CPUは増設RAMの上位ショートアドレッシング領域にアクセスして、増設RAM6が存在しない場合CPUは切り換え設定信号によりアドレスデコーダ部をコントロールすることによって、標準RAMの最上位に存在する代替領域にアクセスする技術が記載されている。特許文献5(特開平05−35495号公報)には、高速アクセスメモリを有するマイクロコンピュータで、変数を変数の処理順に高速アクセスメモリに割り付け、高速アクセスメモリに割り付けることができない変数については、通常のメモリに割り付ける技術が記載されている。特許文献6(特開平10−124325号公報)には、各変数のアクセス頻度に応じて配置領域を決定する技術が記載されている。特許文献7(特開2004−38597号公報)及び特許文献8(特開2006−114069号公報)には、1命令でアクセスできるグローバル領域を有するプロセッサ用のコンパイラで、変数ごとに1命令でアクセスできる領域又はそれ以外の領域への配置を指定可能とする技術が記載されている。特許文献9(特開2006−58991号公報)には、プログラムのサイズや実行サイクルを削減するために、アクセス回数の多いデータをベースアドレスに近い位置に配置する技術が記載されている。   As other related technologies, Patent Document 2 (Japanese Patent Application Laid-Open No. 2006-311610) and Patent Document 3 (Japanese Patent Application Laid-Open No. 09-186703) disclose data including a wired connection communication network system and a wireless access system. In the telecommunications system carrying as (C1-C10), in the radio system, there remains space available in the header field of the cell to transfer cell-oriented data for internal control in the radio system. A technique using a short addressing scheme is described. In Patent Document 4 (Japanese Patent Laid-Open No. 10-027129), the CPU accesses the upper short addressing area of the expansion RAM when the expansion RAM is present, and the CPU reads the address decoder unit by the switching setting signal when the expansion RAM 6 is not present. A technique for accessing an alternative area existing at the top of the standard RAM by controlling the above is described. In Patent Document 5 (Japanese Patent Laid-Open No. 05-35495), a variable having a high-speed access memory is allocated to the high-speed access memory in the order of variable processing, and variables that cannot be allocated to the high-speed access memory are A technique for allocating to memory is described. Patent Document 6 (Japanese Patent Laid-Open No. 10-124325) describes a technique for determining an arrangement area according to the access frequency of each variable. In Patent Document 7 (Japanese Patent Laid-Open No. 2004-38597) and Patent Document 8 (Japanese Patent Laid-Open No. 2006-114069), a compiler for a processor having a global area that can be accessed with one instruction is accessed with one instruction for each variable. A technique is described that makes it possible to specify an arrangement in a possible area or other area. Patent Document 9 (Japanese Patent Application Laid-Open No. 2006-58991) describes a technique for arranging data with a large number of accesses at a position close to a base address in order to reduce the program size and execution cycle.

特開2002−099422号公報JP 2002-099422 A 特開2006−311610号公報JP 2006-311610 A 特開平09−186703号公報JP 09-186703 A 特開平10−027129号公報Japanese Patent Laid-Open No. 10-027129 特開平05−35495号公報JP 05-35495 A 特開平10−124325号公報JP-A-10-124325 特開2004−38597号公報JP 2004-38597 A 特開2006−114069号公報JP 2006-114069 A 特開2006−58991号公報JP 2006-58991 A

NECエレクトロニクス 78K/0シリーズ共通 ユーザーズ・マニュアル 命令編 U12326JJ4V0UM00NEC Electronics 78K / 0 Series Common User's Manual Instructions U12326JJ4V0UM00 NECエレクトロニクス CC78K0 Cコンパイラ ユーザーズ・マニュアル 言語編 U17016JJ1V0UM00NEC Electronics CC78K0 C Compiler User's Manual Language Edition U17016JJ1V0UM00

上記の図1及び図2の説明に示されるように、プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するように試行錯誤するときには、所定の条件が満たされるまで、以下の処理を繰り返す必要がある。すなわち、ソースコードの修正(広域変数にショートダイレクトアドレッシング可能メモリ領域へ配置することを指示する記述を追記、ステップS101)、ビルド処理の実行の指示(ステップS102)、コンパイル処理(ステップS103)、及びリンク処理(ステップS104)である。この繰り返し処理には非常に時間がかかるため、プログラム開発の作業効率上好ましくない。   As shown in the description of FIG. 1 and FIG. 2 above, when trial and error are performed such that a global variable is selected so as to improve the code efficiency of the program and placed in a short direct addressable memory area, a predetermined condition is satisfied. The following process must be repeated until That is, correction of the source code (addition of a description instructing the global variable to be placed in the short direct addressable memory area, step S101), execution instruction of the build process (step S102), compilation process (step S103), and Link processing (step S104). This repetitive process takes a very long time, which is not preferable in terms of work efficiency of program development.

また、図1において、コンパイラ101は個々のソースコード102−1、102−2、102−3を1つずつ処理し、再配置可能オブジェクト104−1、104−2、104−3を生成する。そのため、プログラム全体のコードサイズについては、すべてのオブジェクトコードを結合するリンク処理(ステップS104)の段階までわからない。このため、ビルド処理(ステップS102)終了時までに、実行可能オブジェクト108のコードサイズを知ることができない。そのため、リンク処理(ステップS104)まで実行する必要があり、時間がかかるため、プログラム開発の作業効率上好ましくない。   In FIG. 1, the compiler 101 processes each of the source codes 102-1, 102-2, and 102-3 one by one, and generates relocatable objects 104-1, 104-2, and 104-3. For this reason, the code size of the entire program is not known until the link process (step S104) for linking all object codes. For this reason, the code size of the executable object 108 cannot be known by the end of the build process (step S102). Therefore, it is necessary to execute the process up to the link process (step S104), which takes time, which is not preferable in terms of work efficiency of program development.

以下に、発明を実施するための形態で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、特許請求の範囲の記載と発明を実施するための形態との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。   Hereinafter, means for solving the problem will be described using the numbers and symbols used in the embodiments for carrying out the invention. These numbers and symbols are added with parentheses in order to clarify the correspondence between the description of the claims and the mode for carrying out the invention. However, these numbers and symbols should not be used for interpreting the technical scope of the invention described in the claims.

本発明の実行可能オブジェクトのサイズ予測装置は、コンパイラ(1)と、広域変数一覧表示部(5)とを具備する。コンパイラ(1)は、複数のソースコード(2)を翻訳して複数の再配置可能オブジェクト(4)を生成し、メモリ参照命令サイズテーブル(9)及び前記複数のソースコード(2)に基づいて複数の広域変数参照情報ファイル(3)を生成する。広域変数一覧表示部(5)は、複数の再配置可能オブジェクト(4)と複数の広域変数参照情報ファイル(3)とに基づいて、複数の再配置可能オブジェクト(4)をリンクして生成される実行可能オブジェクトのサイズ予測を実行する。ただし、メモリ参照命令サイズテーブル(9)は、広域変数がショートダイレクトアドレッシング可能領域としての第1領域に配置されている場合に生成する命令のコードサイズと、当該広域変数が第1領域以外のメモリ領域としての第2領域に配置されている場合に生成する命令のコードサイズとのコードサイズ差を、メモリ参照命令ごとに記述している。ファイル広域変数参照情報ファイル(3)は、ソースコード(2)に含まれる各広域変数が第1領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズと、広域変数が第2領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズとのコードサイズ差を示している。広域変数一覧表示部(5)は、広域変数参照情報ファイル(3)に基づいて、各広域変数と、当該各広域変数の配置される領域と、当該各広域変数のコードサイズ差との関係を算出する。そして、各広域変数のうちの配置される領域を変更される変更広域変数の入力に基づいて、算出結果から変更広域変数のコードサイズ差を取得して、当該コードサイズ差を用いて、変更広域変数を含む再配置可能オブジェクトのコードサイズを調整する。調整後の複数の再配置可能オブジェクトのコードサイズに基づいて、リンクと同じアルゴリズムを用いて実行可能オブジェクトサイズの予測値を算出する。   The executable object size prediction apparatus of the present invention comprises a compiler (1) and a global variable list display section (5). The compiler (1) translates a plurality of source codes (2) to generate a plurality of relocatable objects (4), and based on the memory reference instruction size table (9) and the plurality of source codes (2) A plurality of global variable reference information files (3) are generated. The global variable list display unit (5) is generated by linking a plurality of relocatable objects (4) based on a plurality of relocatable objects (4) and a plurality of global variable reference information files (3). Perform size estimation of executable objects. However, the memory reference instruction size table (9) includes the code size of the instruction generated when the global variable is arranged in the first area as the short direct addressable area, and the memory in which the global variable is other than the first area. The difference in code size from the code size of the instruction generated when it is arranged in the second area as the area is described for each memory reference instruction. The file global variable reference information file (3) includes a code size required to refer to the global variable when the global variable included in the source code (2) is arranged in the first area, and the global It shows the code size difference from the code size required to refer to the global variable when it is assumed that the variable is arranged in the second area. Based on the global variable reference information file (3), the global variable list display unit (5) shows the relationship between each global variable, the area where the global variable is arranged, and the code size difference between the global variables. calculate. Then, based on the input of the changed global variable that changes the area to be arranged in each global variable, the code size difference of the changed global variable is obtained from the calculation result, and the changed global variable is used by using the code size difference. Adjust the code size of relocatable objects that contain variables. Based on the code size of the plurality of relocatable objects after adjustment, the predicted value of the executable object size is calculated using the same algorithm as that of the link.

本発明の実行可能オブジェクトのサイズ予測装置では、コンパイラ(1)が、メモリ参照命令サイズテーブル(9)に基づいて、複数の再配置可能オブジェクト(4)に対応した複数の広域変数参照情報ファイル(3)を生成する。その結果、広域変数一覧表示部(5)は、広域変数参照情報ファイル(3)に基づいて、各広域変数と、当該各広域変数の配置される領域と、当該各広域変数のコードサイズ差との関係を算出することができる。この関係と、各広域変数のうちの配置される領域を変更される変更広域変数とに基づいて、再配置可能オブジェクトにおける変更広域変数のコードサイズを調整することができる。その結果、調整後の再配置可能オブジェクトのコードサイズに基づいて、実行可能オブジェクトサイズの予測値を算出することが可能となる。   In the executable object size prediction apparatus of the present invention, the compiler (1) has a plurality of global variable reference information files corresponding to a plurality of relocatable objects (4) based on the memory reference instruction size table (9). 3) is generated. As a result, the global variable list display unit (5), based on the global variable reference information file (3), each global variable, the area where each global variable is arranged, and the code size difference between each global variable, Can be calculated. The code size of the changed global variable in the relocatable object can be adjusted based on this relationship and the changed global variable in which the area to be arranged among the global variables is changed. As a result, it is possible to calculate the predicted value of the executable object size based on the adjusted code size of the relocatable object.

本発明の実行可能オブジェクトのサイズ予測方法及びそのプログラムは、複数のソースコード(2)を翻訳して複数の再配置可能オブジェクト(4)を生成するステップと、メモリ参照命令サイズテーブル(9)に基づいて複数の広域変数参照情報ファイル(3)を生成するステップと、複数の再配置可能オブジェクト(4)と複数の広域変数参照情報ファイル(3)とに基づいて、複数の再配置可能オブジェクト(4)をリンクして生成される実行可能オブジェクトのサイズ予測を実行するステップとを具備する。ただし、メモリ参照命令サイズテーブル(9)は、広域変数がショートダイレクトアドレッシング可能領域としての第1領域に配置されている場合に生成する命令のコードサイズと、当該広域変数が第1領域以外のメモリ領域としての第2領域に配置されている場合に生成する命令のコードサイズとのコードサイズ差を、メモリ参照命令ごとに記述している。ファイル広域変数参照情報ファイル(3)は、ソースコード(2)に含まれる各広域変数が第1領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズと、広域変数が第2領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズとのコードサイズ差を示している。サイズ予測を実行するステップは、広域変数参照情報ファイル(3)に基づいて、各広域変数と、当該各広域変数の配置される領域と、当該各広域変数のコードサイズ差との関係を算出するステップと、各広域変数のうちの配置される領域を変更される変更広域変数の入力に基づいて、算出結果から変更広域変数のコードサイズ差を取得して、当該コードサイズ差を用いて、変更広域変数を含む再配置可能オブジェクトのコードサイズを調整するステップと、調整後の複数の再配置可能オブジェクトのコードサイズに基づいて、リンクと同じアルゴリズムを用いて実行可能オブジェクトサイズの予測値を算出するステップとを備える。   The executable object size prediction method and the program thereof according to the present invention include a step of translating a plurality of source codes (2) to generate a plurality of relocatable objects (4), and a memory reference instruction size table (9). Based on the step of generating a plurality of global variable reference information files (3) based on the plurality of relocatable objects (4) and the plurality of global variable reference information files (3), And 4) performing a size estimation of the executable object generated by linking the above. However, the memory reference instruction size table (9) includes the code size of the instruction generated when the global variable is arranged in the first area as the short direct addressable area, and the memory in which the global variable is other than the first area. The difference in code size from the code size of the instruction generated when it is arranged in the second area as the area is described for each memory reference instruction. The file global variable reference information file (3) includes a code size required to refer to the global variable when the global variable included in the source code (2) is arranged in the first area, and the global It shows the code size difference from the code size required to refer to the global variable when it is assumed that the variable is arranged in the second area. The step of executing the size prediction calculates the relationship between each global variable, the area where each global variable is arranged, and the code size difference between each global variable based on the global variable reference information file (3). Based on the input of the step and the change global variable that changes the area to be arranged among each global variable, obtain the code size difference of the changed global variable from the calculation result, and change using the code size difference Based on the step of adjusting the code size of the relocatable object including the global variable and the code size of the plurality of relocatable objects after adjustment, the predicted value of the executable object size is calculated using the same algorithm as that of the link. Steps.

本発明の実行可能オブジェクトのサイズ予測方法及びそのプログラにおいても、上記の実行可能オブジェクトのサイズ予測装置と同様の作用効果を得ることができる。   In the executable object size prediction method and the program thereof according to the present invention, the same effects as those of the executable object size prediction apparatus can be obtained.

本発明により、プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するよう試行錯誤する際に要する時間を短縮することができる。つまり、開発期間を短縮することができる。   According to the present invention, it is possible to reduce the time required for trial and error to select a wide area variable so as to improve the code efficiency of the program and to arrange it in a short direct addressable memory area. That is, the development period can be shortened.

図1は、情報処理システムの構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of the information processing system. 図2は、上記情報処理システムの動作を示すフローチャートである。FIG. 2 is a flowchart showing the operation of the information processing system. 図3は、本発明の実施の形態に係る実行可能オブジェクトのサイズ予測装置の構成を示すブロック図である。FIG. 3 is a block diagram showing the configuration of the executable object size prediction apparatus according to the embodiment of the present invention. 図4は、本発明の実施の形態に係る広域変数一覧表示部の詳細を示すブロック図である。FIG. 4 is a block diagram showing details of the wide-area variable list display unit according to the embodiment of the present invention. 図5に、本発明の実施の形態に係る広域変数一覧表示部のGUI画面の一例を示す模式図である。FIG. 5 is a schematic diagram showing an example of a GUI screen of the wide area variable list display unit according to the embodiment of the present invention. 図6は、本発明の実施の形態に係る広域変数配置指定ファイルの書式の一例を示す模式図である。FIG. 6 is a schematic diagram showing an example of the format of the global variable placement designation file according to the embodiment of the present invention. 図7は、本発明の実施の形態に係る広域変数参照情報ファイルの書式の一例を示す模式図である。FIG. 7 is a schematic diagram showing an example of the format of the global variable reference information file according to the embodiment of the present invention. 図8は、本発明の実施の形態に係るメモリ参照命令サイズテーブルの一例を示す模式図である。FIG. 8 is a schematic diagram showing an example of a memory reference instruction size table according to the embodiment of the present invention. 図9は、本発明の実施の形態に係るオブジェクトサイズ情報テーブルの一例を示す模式図である。FIG. 9 is a schematic diagram showing an example of an object size information table according to the embodiment of the present invention. 図10は、本発明の実施の形態に係る広域変数参照情報マトリクスの一例を示す模式図である。FIG. 10 is a schematic diagram showing an example of the global variable reference information matrix according to the embodiment of the present invention. 図11は、本発明の実施の形態に係る実行可能オブジェクトのサイズ予測装置の動作を示すフローチャートである。FIG. 11 is a flowchart showing the operation of the executable object size predicting apparatus according to the embodiment of the present invention. 図12は、本発明の実施の形態に係るサイズ予測処理を示すフローチャートである。FIG. 12 is a flowchart showing the size prediction process according to the embodiment of the present invention.

以下、本発明の実行可能オブジェクトのサイズ予測装置、そのサイズ予測方法、及びそのプログラムの実施の形態に関して、添付図面を参照して説明する。   DESCRIPTION OF EXEMPLARY EMBODIMENTS Embodiments of an executable object size predicting apparatus, a size predicting method thereof, and a program thereof according to the present invention will be described below with reference to the accompanying drawings.

まず、本発明の実施の形態に係る実行可能オブジェクトのサイズ予測装置の構成について説明する。
図3は、本発明の実施の形態に係る実行可能オブジェクトのサイズ予測装置の構成を示すブロック図である。この図は、サイズ予測装置50の構成を示し、更にショートダイレクトアドレッシング可能メモリ領域に広域変数を配置指定するときの各ツールと各入出力ファイルとの関係を示している。パーソナルコンピュータに例示される情報処理装置に、本発明の実行可能オブジェクトのサイズ予測プログラム(実行可能オブジェクトのサイズ予測方法)がインストールされて、本発明の実行可能オブジェクトのサイズ予測装置50として機能する。このサイズ予測装置50は、コンパイラ1、リンカ7、広域変数一覧表示部5、記憶部10、入力装置11、ディスプレイ装置12を具備している。
First, the configuration of the executable object size predicting apparatus according to the embodiment of the present invention will be described.
FIG. 3 is a block diagram showing the configuration of the executable object size prediction apparatus according to the embodiment of the present invention. This figure shows the configuration of the size predicting device 50, and further shows the relationship between each tool and each input / output file when a wide-area variable is specified in the short direct addressable memory area. An executable object size prediction program (executable object size prediction method) of the present invention is installed in an information processing apparatus exemplified by a personal computer, and functions as the executable object size prediction apparatus 50 of the present invention. The size prediction apparatus 50 includes a compiler 1, a linker 7, a wide area variable list display unit 5, a storage unit 10, an input device 11, and a display device 12.

コンパイラ1、リンカ7、及び広域変数一覧表示部5は、ソフトウェア、ソフトウェア及びハードウェアとの組み合わせなどにより実現可能である。例えば、コンパイラ1、リンカ7、及び広域変数一覧表示部5は、それらの機能を有するプログラムと、それらのプログラムの実行に使用されるCPU(Central Processing Unit)及びメインメモリにより実現可能である。また、記憶部10はメモリやハードディスク装置に例示され、入力装置11はマウスやキーボードに例示され、ディスプレイ装置12はフラットパネルディスプレイに例示される。   The compiler 1, the linker 7, and the wide area variable list display unit 5 can be realized by a combination of software, software, and hardware. For example, the compiler 1, the linker 7, and the wide area variable list display unit 5 can be realized by a program having these functions, a CPU (Central Processing Unit) used for executing these programs, and a main memory. The storage unit 10 is exemplified by a memory and a hard disk device, the input device 11 is exemplified by a mouse and a keyboard, and the display device 12 is exemplified by a flat panel display.

コンパイラ1は、入力されたソースコード2−1〜2−3を翻訳し、再配置可能オブジェクト4−1〜4−3を生成する。このとき、ソースコード2中でショートダイレクトアドレッシング可能メモリ領域に配置する指定がなされている広域変数に対しては、ショートダイレクトアドレッシングでアクセスするコードを生成する。コンパイラ1は、更に、ショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を、入力ファイル(広域変数配置指定ファイル6)により指定することができる機能を有する。コンパイラ1は、更に、メモリ参照命令サイズテーブル9(後述)及びソースコード2−1〜2−3に基づいて複数の広域変数参照情報ファイル3−1〜3−3を生成、出力する機能を有する。広域変数参照情報ファイル3−1〜3−3は、広域変数がショートダイレクトアドレッシング可能領域に配置されていると仮定した場合におけるその広域変数を参照するのに要するコードサイズと、広域変数が通常のメモリ領域に配置されていると仮定した場合におけるその広域変数を参照するのに要するコードサイズとの差を示すファイルである。   The compiler 1 translates the input source codes 2-1 to 2-3 and generates relocatable objects 4-1 to 4-3. At this time, a code to be accessed by short direct addressing is generated for a wide-area variable designated to be placed in the short direct addressable memory area in the source code 2. The compiler 1 further has a function of specifying a global variable to be arranged in the short direct addressable memory area by an input file (global variable arrangement designation file 6). The compiler 1 further has a function of generating and outputting a plurality of global variable reference information files 3-1 to 3-3 based on a memory reference instruction size table 9 (described later) and source codes 2-1 to 2-3. . In the global variable reference information files 3-1 to 3-3, when it is assumed that the global variable is arranged in the short direct addressable area, the code size required to refer to the global variable, and the global variable are normal This file indicates the difference from the code size required to refer to the global variable when it is assumed that it is located in the memory area.

リンカ7は、コンパイラ1で生成された複数の再配置可能オブジェクト4−1〜4−3を結合し、外部参照の解決、絶対アドレスの決定を行い、実行可能オブジェクト8を生成する。入力装置11は、ユーザがサイズ予測装置50に対して入力操作を行なう装置である。ディスプレイ装置12は、サイズ予測装置50における情報処理の内容やユーザによる入力操作の内容を表示する。記憶部10は、本実施の形態において入力、生成、変更、出力等される各種ファイルやデータ(例示:広域変数参照情報ファイル3、広域変数配置指定ファイル6、メモリ参照命令サイズテーブル9)を格納している。記憶部10は、ソースコード2やコンパイラ1や再配置可能オブジェクト4やリンカ7や実行可能オブジェクト8を記憶してもよい。   The linker 7 combines the plurality of relocatable objects 4-1 to 4-3 generated by the compiler 1, resolves external references, determines absolute addresses, and generates an executable object 8. The input device 11 is a device by which a user performs an input operation on the size prediction device 50. The display device 12 displays the content of information processing in the size prediction device 50 and the content of input operation by the user. The storage unit 10 stores various files and data (for example, the global variable reference information file 3, the global variable placement designation file 6, and the memory reference instruction size table 9) that are input, generated, changed, and output in the present embodiment. is doing. The storage unit 10 may store the source code 2, the compiler 1, the relocatable object 4, the linker 7, and the executable object 8.

広域変数一覧表示部5は、コンパイラ1により生成される再配置可能オブジェクト4や広域変数参照情報ファイル3に基づいて、実行可能オブジェクトのサイズ予測を実行する。図4は、本発明の実施の形態に係る広域変数一覧表示部5の詳細を示すブロック図である。この図は、広域変数一覧表示部の構成を示し、更にショートダイレクトアドレッシング可能メモリ領域に広域変数を配置指定する処理の流れを示している。広域変数一覧表示部5は、広域変数配置指定/一覧表示部21と、オブジェクトサイズ情報テーブル22と、広域変数参照情報マトリクス23とを備えている。   The global variable list display unit 5 performs size prediction of the executable object based on the relocatable object 4 and the global variable reference information file 3 generated by the compiler 1. FIG. 4 is a block diagram showing details of the global variable list display unit 5 according to the embodiment of the present invention. This figure shows the configuration of the wide area variable list display section, and further shows the flow of processing for designating the placement of wide area variables in the short direct addressable memory area. The global variable list display unit 5 includes a global variable arrangement designation / list display unit 21, an object size information table 22, and a global variable reference information matrix 23.

広域変数配置指定/一覧表示部21は、コンパイラ1が生成した再配置可能オブジェクト4(4−1〜4−3)から情報を取得し、オブジェクトサイズ情報テーブル22を生成する。また、広域変数配置指定/一覧表示部21は、コンパイラ1が生成した広域変数参照情報ファイル3(3−1〜3−3)から情報を取得し、広域変数参照情報マトリクス23を生成する。更に、広域変数配置指定/一覧表示部21は、オブジェクトサイズ情報テーブル22、広域変数参照情報マトリクス23、ユーザ操作による入力情報に基づいて、広域変数配置指定ファイル6を生成/更新する。また、広域変数配置指定/一覧表示部21は、プログラム中の広域変数をGUIで一覧表示する。更に、広域変数配置指定/一覧表示部21は、再配置可能オブジェクト4や広域変数参照情報ファイル3に基づいて、実行可能オブジェクトのサイズ予測を実行する。   The global variable arrangement designation / list display unit 21 acquires information from the relocatable objects 4 (4-1 to 4-3) generated by the compiler 1 and generates an object size information table 22. Further, the global variable arrangement designation / list display unit 21 acquires information from the global variable reference information file 3 (3-1 to 3-3) generated by the compiler 1, and generates a global variable reference information matrix 23. Furthermore, the global variable arrangement designation / list display unit 21 generates / updates the global variable arrangement designation file 6 based on the object size information table 22, the global variable reference information matrix 23, and the input information by the user operation. Further, the global variable arrangement designation / list display unit 21 displays a list of global variables in the program using a GUI. Furthermore, the wide area variable designation / list display unit 21 performs size prediction of the executable object based on the relocatable object 4 and the wide area variable reference information file 3.

図5は、本発明の実施の形態に係る広域変数一覧表示部5のGUI画面の一例を示す模式図である。GUI画面30は、広域変数一覧表示部5の広域変数配置指定/一覧表示部21によりディスプレイ装置12に表示される。GUI画面30は、テーブル31、実行可能オブジェクトサイズ(予測値)表示欄32(32−1〜32−3)、バーチャルリンク実行ボタン33を含む。テーブル31は、チェックボックスの欄、広域変数名の欄、配置領域の欄、サイズの欄、参照サイズ差の欄、ファイル名の欄がそれぞれ設けられている。   FIG. 5 is a schematic diagram showing an example of a GUI screen of the wide area variable list display unit 5 according to the embodiment of the present invention. The GUI screen 30 is displayed on the display device 12 by the global variable arrangement designation / list display unit 21 of the global variable list display unit 5. The GUI screen 30 includes a table 31, an executable object size (predicted value) display field 32 (32-1 to 32-3), and a virtual link execution button 33. The table 31 includes a check box field, a global variable name field, an arrangement area field, a size field, a reference size difference field, and a file name field.

チェックボックスの欄では、広域変数名の欄に記載の広域変数に対応してチェックボックスが表示される。ユーザは、広域変数名の欄に記載の広域変数をショートダイレクトアドレッシング可能メモリ領域に配置指定する場合、そのチェックボックスを入力装置11によりチェックする。チェックされた場合、配置領域の表示が“Saddr”となる。すなわち、“Saddr”はショートダイレクトアドレッシング可能領域に配置指定されている広域変数を示している。ユーザがチェックボックスをチェッしない場合、配置領域の表示が“Normal”となる。すなわち、“Normal”は通常のメモリ領域に配置されている広域変数を示している。チェックボックスへチェックすること、及び、チェックを外すことは、いずれもユーザの入力装置11を用いた入力操作に基づいて行なわれる。なお、初期画面は、全て“Normal”である。   In the check box column, check boxes are displayed corresponding to the global variables described in the global variable name column. When the user designates the global variable described in the column of the global variable name in the short direct addressable memory area, the user checks the check box with the input device 11. When checked, the arrangement area display becomes “Saddr”. That is, “Saddr” indicates a wide-area variable that is designated for placement in the short direct addressable area. When the user does not check the check box, the display of the arrangement area is “Normal”. That is, “Normal” indicates a global variable arranged in a normal memory area. Checking the check box and removing the check are both performed based on the input operation using the input device 11 of the user. The initial screen is all “Normal”.

ユーザ入力操作の結果、ショートダイレクトアドレッシング可能メモリ領域の残りサイズが0(ゼロ)になった場合、広域変数配置指定/一覧表示部21は、新たにチェックボックスをチェックできなくして、その旨をGUI画面30に表示する。また、残りサイズよりも大きいサイズが指定された場合、域変数配置指定/一覧表示部21は、その入力を拒否し、その旨をGUI画面30に表示する。ただし、ショートダイレクトアドレッシング可能メモリ領域の残りサイズは、以下のようにして取得する。まず、ユーザは、ショートダイレクトアドレッシング可能メモリ領域のサイズ自体を、設定可能なサイズを最大値として、入力装置11から事前に指定する。そして、ショートダイレクトアドレッシング可能メモリ領域の残りサイズは、ユーザに入力されたサイズから現在使用しているSaddrサイズを減算することで算出する。使用しているSaddrサイズは、オブジェクトサイズ情報テーブル22(詳細は図9参照)におけるセグメント属性の欄が“SADDR”となっている行のサイズの合計で求める。   As a result of the user input operation, when the remaining size of the short direct addressable memory area becomes 0 (zero), the global variable placement designation / list display unit 21 cannot newly check the check box, and informs the GUI of that. It is displayed on the screen 30. When a size larger than the remaining size is designated, the area variable placement designation / list display unit 21 rejects the input and displays the fact on the GUI screen 30. However, the remaining size of the short direct addressable memory area is obtained as follows. First, the user designates the size of the short direct addressable memory area in advance from the input device 11 with the settable size as a maximum value. The remaining size of the short direct addressable memory area is calculated by subtracting the currently used Saddr size from the size input by the user. The Saddr size used is obtained as the sum of the sizes of the rows in which the segment attribute column is “SADDR” in the object size information table 22 (see FIG. 9 for details).

広域変数名の欄では、ファイル名の欄に記載のファイル内の広域変数の名前(例示:g_var11)が表示される。配置領域の欄では、広域変数を、ショートダイレクトアドレッシング可能メモリ領域に配置指定した場合には“Saddr”、通常のメモリ領域に配置指定した場合には“Normal”と表示する。サイズの欄では、広域変数の変数型のサイズ(例示:2(バイト))を表示する。参照サイズ差の欄では、広域変数を、ショートダイレクトアドレッシング可能メモリ領域に配置指定した場合に使用されるメモリサイズと、通常のメモリ領域に配置指定した場合に使用されるメモリサイズとの差(例示:90(バイト))を表示する。ファイル名の欄では、広域変数名の欄に記載の広域変数が含まれているファイル(ソースコード)の名称(例示:file1.c)を表示する。   In the global variable name column, the name of the global variable in the file described in the file name column (example: g_var11) is displayed. In the arrangement area column, the global variable is displayed as “Saddr” when the arrangement is designated in the short direct addressable memory area, and “Normal” is designated when the arrangement is designated in the normal memory area. In the size column, the size of the variable type of the global variable (example: 2 (bytes)) is displayed. In the reference size difference column, the difference between the memory size used when the global variable is allocated in the short direct addressable memory area and the memory size used when the allocation is specified in the normal memory area (example) : 90 (bytes)) is displayed. In the file name column, the name (example: file1.c) of a file (source code) including the global variable described in the global variable name column is displayed.

広域変数名の欄、配置領域の欄、サイズの欄、参照サイズ差の欄、ファイル名の欄は、オブジェクトサイズ情報テーブル22、広域変数参照情報マトリクス23、及び広域変数配置指定ファイル6に基づいて広域変数配置指定/一覧表示部21が生成して、表示する。例えば、チェックボックスと配置領域は、広域変数配置指定ファイル6(後述)に含まれているものを“Sadder”とすることができる。広域変数名、参照サイズ差、ファイル名は、広域変数参照情報マトリクス23(後述)の広域変数名、参照コードサイズ(変化量)の和、ファイル名を用いることができる。サイズは、広域変数参照情報ファイル3(詳細は図7参照)における広域変数と変数型との対応から求めることができる。例えば、広域変数名“g_var11”の場合、変数型がint型となるので、2バイトとなる。ただし、変数型のサイズは、コンパイラ1の種類により差異があるが、本実施の形態では、以下を想定して説明している。char型は1バイト、short型は2バイト、long型は4バイト、ポインタ型(char*/short*/int*/long*)は2バイトである。
ただし、例えば、「ファイル名」の広域変数名“g_var11”は、広域変数参照情報マトリクス23(詳細は図10参照)から、「file1.c」だけでなく、図示しないが、「file2.c、file3.c、file4.c、…」を含んでいる。同様に、広域変数名“g_var12”は、広域変数参照情報マトリクス23(図10)から、「file1.c」だけでなく、図示しないが、「file2.c、file4.c、…」を含んでいる。以下同様である。
The global variable name column, arrangement region column, size column, reference size difference column, and file name column are based on the object size information table 22, the global variable reference information matrix 23, and the global variable allocation specification file 6. The wide area variable designation / list display unit 21 generates and displays it. For example, the check box and the arrangement area can be “Sadder” that is included in the global variable arrangement designation file 6 (described later). As the global variable name, the reference size difference, and the file name, the global variable name, the sum of the reference code size (change amount), and the file name of the global variable reference information matrix 23 (described later) can be used. The size can be obtained from the correspondence between the global variable and the variable type in the global variable reference information file 3 (see FIG. 7 for details). For example, in the case of the global variable name “g_var11”, since the variable type is an int type, it is 2 bytes. However, the size of the variable type varies depending on the type of the compiler 1, but in the present embodiment, the description is given assuming the following. The char type is 1 byte, the short type is 2 bytes, the long type is 4 bytes, and the pointer type (char * / short * / int * / long *) is 2 bytes.
However, for example, the global variable name “g_var11” of “file name” is not only “file1.c” but also “file2.c,” from the global variable reference information matrix 23 (see FIG. 10 for details). file 3.c, file 4.c, ... ". Similarly, the global variable name “g_var12” includes not only “file1.c” but also “file2.c, file4.c,...” From the global variable reference information matrix 23 (FIG. 10). Yes. The same applies hereinafter.

バーチャルリンク実行ボタン33は、広域変数配置指定/一覧表示部21に、実行可能オブジェクトのサイズ予測を実行させるボタンである。ただし、「バーチャルリンク」は、実行可能オブジェクトのサイズ予測処理である。ユーザの入力操作によりバーチャルリンク実行ボタン33が押下されると、広域変数配置指定/一覧表示部21は実行可能オブジェクトのサイズ予測を実行する。実行可能オブジェクトサイズ(予測値)表示欄32(32−1〜32−3)は、広域変数配置指定/一覧表示部21による実行可能オブジェクトのサイズ予測の実行結果を表示する。すなわち、表示欄32−1にCODE属性のオブジェクト、表示欄32−2にSADDR属性のオブジェクト、表示欄32−3にDATA属性のオブジェクト結果を表示する。サイズオーバーした場合には、この欄にその旨が表示される。実行可能オブジェクトのサイズ予測の詳細は後述される。   The virtual link execution button 33 is a button for causing the global variable arrangement designation / list display unit 21 to execute the size prediction of the executable object. However, “virtual link” is an executable object size prediction process. When the virtual link execution button 33 is pressed by the user's input operation, the global variable arrangement designation / list display unit 21 executes size prediction of the executable object. The executable object size (predicted value) display field 32 (32-1 to 32-3) displays an execution result of the size prediction of the executable object by the global variable layout designation / list display unit 21. That is, the CODE attribute object is displayed in the display column 32-1, the SADDR attribute object is displayed in the display column 32-2, and the DATA attribute object result is displayed in the display column 32-3. If the size is exceeded, this is displayed in this column. Details of the size prediction of the executable object will be described later.

このように、広域変数配置指定/一覧表示部21は、オブジェクトサイズ情報テーブル22、広域変数参照情報マトリクス23、及び、広域変数配置指定ファイル6を生成/更新する機能と共に、ユーザの入力操作に応答して、広域変数の配置(ショートダイレクトアドレッシング可能メモリ領域か通常メモリ領域か)をGUI画面30の一覧表示上から指定する機能、及び、広域変数参照情報ファイル3及び再配置可能オブジェクト4のサイズ情報に基づいて、実行可能オブジェクト8のサイズを予測する機能を備えている。   As described above, the global variable arrangement designation / list display unit 21 responds to a user input operation together with the function to generate / update the object size information table 22, the global variable reference information matrix 23, and the global variable arrangement designation file 6. Then, a function for designating the arrangement of the global variable (whether it is a short direct addressable memory area or a normal memory area) from the list display on the GUI screen 30, and the size information of the global variable reference information file 3 and the relocatable object 4 Is provided with a function for predicting the size of the executable object 8.

図6は、本発明の実施の形態に係る広域変数配置指定ファイルの書式の一例を示す模式図である。広域変数配置指定ファイル6は、広域変数一覧表示部5の広域変数配置指定/一覧表示部21が生成/更新し、コンパイラ1が入力ファイルとして用いるファイルである。広域変数配置指定ファイル6は、プログラム(ソースコード(ソースファイル))中で定義されている広域変数の中で、ショートダイレクトアドレッシング可能メモリ領域に配置指定する広域変数の情報を記述する。ここでは、その広域変数の名前(広域変数名)、その広域変数の変数型(変数型)、及び、その広域変数の含まれるソースファイルの名前(ソースファイル名)が互いに関連付けられて記述されている。ただし、初回の処理では、広域変数配置指定ファイル6が存在せず、初回の処理後に広域変数配置指定/一覧表示部21により生成される。   FIG. 6 is a schematic diagram showing an example of the format of the global variable placement designation file according to the embodiment of the present invention. The global variable arrangement designation file 6 is a file that is generated / updated by the global variable arrangement designation / list display section 21 of the global variable list display section 5 and used by the compiler 1 as an input file. The global variable allocation specification file 6 describes information on global variables to be allocated and specified in the short direct addressable memory area among the global variables defined in the program (source code (source file)). Here, the name of the global variable (global variable name), the variable type of the global variable (variable type), and the name of the source file containing the global variable (source file name) are described in association with each other. Yes. However, in the first process, the global variable arrangement designation file 6 does not exist, and is generated by the global variable arrangement designation / list display unit 21 after the first process.

図5のGUI画面30上で、チェックボックスがチェックされている広域変数が、ショートダイレクトアドレッシング可能メモリ領域に配置指定する広域変数となる。広域変数配置指定/一覧表示部21は、バーチャルリンク実行ボタン33が押されたタイミングで、チェックボックスがチェックされている広域変数の情報を、広域変数配置指定ファイル6に出力し、広域変数配置指定ファイル6を生成/更新する。   On the GUI screen 30 in FIG. 5, a wide area variable whose check box is checked is a wide area variable that is designated for placement in the short direct addressable memory area. The global variable allocation designation / list display unit 21 outputs the global variable information whose check box is checked to the global variable allocation specification file 6 at the timing when the virtual link execution button 33 is pressed, and specifies the global variable allocation specification. File 6 is generated / updated.

図7は、本発明の実施の形態に係る広域変数参照情報ファイルの書式の一例を示す模式図である。広域変数参照情報ファイル3は、コンパイラ1がソースファイル単位で生成するファイルである。ソースファイル(ソースファイル名)ごとに、各広域変数(広域変数名、変数型)が、ショートダイレクトアドレッシング可能メモリ領域に配置されていると仮定した場合にそれを参照するのに要するコードサイズと、通常のメモリ領域に配置されていると仮定した場合にそれを参照するのに要するコードサイズとの差(参照コードサイズ(変化量))を記述する。コンパイラ1はコード生成のときに広域変数を参照する命令を出力した場合、図8のメモリ参照命令サイズテーブル9(後述)により広域変数の配置領域の違いによる命令サイズの変化量を取得する。そして、取得した命令サイズの変化量を広域変数参照情報ファイル3中の当該広域変数の参照コードサイズ(変化量)に加算していくことにより、この情報を生成する。   FIG. 7 is a schematic diagram showing an example of the format of the global variable reference information file according to the embodiment of the present invention. The global variable reference information file 3 is a file generated by the compiler 1 in source file units. For each source file (source file name), assuming that each global variable (global variable name, variable type) is located in the short direct addressable memory area, the code size required to refer to it, Describe the difference (reference code size (variation)) from the code size required to refer to it when it is assumed that it is arranged in a normal memory area. When the compiler 1 outputs an instruction that refers to a global variable at the time of code generation, the compiler 1 acquires a change amount of the instruction size due to a difference in the allocation area of the global variable by a memory reference instruction size table 9 (described later) in FIG. Then, this information is generated by adding the obtained change amount of the instruction size to the reference code size (change amount) of the global variable in the global variable reference information file 3.

例えば、図7の広域変数参照情報ファイル3の広域変数g_var11に着目する。g_var11の参照コードサイズ(変化量)は、10となっている。このような結果となる例を以下に示す。
(例1)ソースファイル中の広域変数g_var11を参照する命令として、図8のメモリ参照命令サイズテーブル9の命令の種類の「movw var,ax」を10回出力した場合、「movw var,ax」のコードサイズの差は1なので、1×10で、10となる。
(例2)ソースファイル中の広域変数g_var11を参照する命令として、図8のメモリ参照命令サイズテーブル9の命令の種類の「movw var,ax」を5回、「sub a,var」を5回、それぞれ出力した場合、「movw var,ax」と「sub a,var」のコードサイズの差は、それぞれ1なので、1×5+1×5で、10となる。
For example, focus on the global variable g_var11 in the global variable reference information file 3 in FIG. The reference code size (change amount) of g_var11 is 10. An example of such a result is shown below.
(Example 1) When the instruction type “movw var, ax” in the memory reference instruction size table 9 in FIG. 8 is output 10 times as an instruction for referring to the global variable g_var11 in the source file, “movw var, ax” Since the difference in code size is 1, 1 × 10 is 10.
(Example 2) As an instruction to refer to the global variable g_var11 in the source file, the instruction type “movw var, ax” in the memory reference instruction size table 9 of FIG. 8 is five times, and “sub a, var” is five times. , The difference in code size between “movw var, ax” and “sub a, var” is 1, so that 1 × 5 + 1 × 5 is 10.

図7は、コンパイラ1がfile1.cをコンパイルするときに生成する広域変数参照情報ファイル3の例である。file2.c、file3.c、…をコンパイルした場合、同様の広域変数参照情報ファイル3が生成される。この広域変数参照情報ファイル3により、各広域変数がショートダイレクトアドレッシング可能メモリ領域に配置された場合にそれを参照するのに要するコードサイズと、各広域変数が通常のメモリ領域に配置された場合にそれを参照するのに要するコードサイズとの差を得ることができる。   FIG. 7 shows that compiler 1 is file1. It is an example of the global variable reference information file 3 generated when compiling c. file2. c, file3. When c,... are compiled, a similar global variable reference information file 3 is generated. When the global variable reference information file 3 allocates each global variable to a short direct addressable memory area, the code size required to refer to it and when each global variable is allocated to a normal memory area The difference from the code size required to refer to it can be obtained.

図8は、本発明の実施の形態に係るメモリ参照命令サイズテーブルの一例を示す模式図である。メモリ参照命令サイズテーブル9は、コンパイラ1が広域変数参照情報ファイル3を生成する際に使用するテーブルである。各メモリ参照命令(命令の種類)に関して、広域変数が通常のメモリ領域に配置されている場合に生成する命令のサイズ(コードサイズA、単位:バイト)、ショートダイレクトアドレッシング可能領域に配置されている場合に生成する命令のサイズ(コードサイズB、単位:バイト)、及び、それらサイズの差(コードサイズの差、単位:バイト)を記述する。テーブルの内容と書式は、対象とするマイクロコンピュータの命令セットアーキテクチャとコンパイラのコード生成方法に依存する。ここでは、2オペランド形式のレジスタ−メモリ演算命令を備えた命令セットアーキテクチャの場合の一例を示している。メモリ参照命令サイズテーブル9は、予め用意されている。   FIG. 8 is a schematic diagram showing an example of a memory reference instruction size table according to the embodiment of the present invention. The memory reference instruction size table 9 is a table used when the compiler 1 generates the global variable reference information file 3. Regarding each memory reference instruction (instruction type), when a global variable is placed in a normal memory area, the size of the instruction to be generated (code size A, unit: bytes) is placed in the short direct addressable area The size of the instruction to be generated in this case (code size B, unit: byte) and the difference between the sizes (code size difference, unit: byte) are described. The contents and format of the table depend on the instruction set architecture of the target microcomputer and the code generation method of the compiler. Here, an example in the case of an instruction set architecture provided with a register-memory operation instruction in a two-operand format is shown. The memory reference instruction size table 9 is prepared in advance.

図9は、本発明の実施の形態に係るオブジェクトサイズ情報テーブルの一例を示す模式図である。オブジェクトサイズ情報テーブル22は、広域変数一覧表示部5の広域変数配置指定/一覧表示部21が管理するテーブルである。広域変数配置指定/一覧表示部21は、再配置可能オブジェクト4を入力として、このオブジェクトサイズ情報テーブル22を初期生成する。その後、ユーザによる図5のGUI画面30上での各広域変数の配置指定の変更に応じて、オブジェクトサイズ情報テーブル22中の各セグメントのサイズが修正される。実行可能オブジェクト8のサイズ予測処理のとき、この修正した値が用いられる。オブジェクトサイズ情報テーブル22は、再配置可能オブジェクト4(ファイル名の欄)と、その再配置可能オブジェクト4に含まれるセグメント(セグメント属性の欄)と、そのセグメントのサイズ(サイズの欄、単位:バイト)とを関連付けている。   FIG. 9 is a schematic diagram showing an example of an object size information table according to the embodiment of the present invention. The object size information table 22 is a table managed by the global variable placement designation / list display unit 21 of the global variable list display unit 5. The global variable arrangement designation / list display unit 21 receives the relocatable object 4 as an input and initially generates the object size information table 22. After that, the size of each segment in the object size information table 22 is corrected according to the change in the designation of the arrangement of each global variable on the GUI screen 30 in FIG. This corrected value is used in the size predicting process of the executable object 8. The object size information table 22 includes a relocatable object 4 (file name column), a segment (segment attribute column) included in the relocatable object 4, and a size of the segment (size column, unit: byte). ).

図10は、本発明の実施の形態に係る広域変数参照情報マトリクスの一例を示す模式図である。広域変数参照情報マトリクス23は、広域変数一覧表示部5の広域変数配置指定/一覧表示部21が管理するテーブルである。マトリクス中のm行n列の要素は、n列目の広域変数(例示:g_var11、g_var12、…)の配置を変更した場合の、m行目の再配置可能オブジェクト(例示:file1.o、file2.o、…)の参照コードサイズ(変化量)(例示:10、20、…、10、10、…)を表している。広域変数配置指定/一覧表示部21は、コンパイラ1が各ソースファイル単位で生成する広域変数参照情報ファイル3を入力として、この広域変数参照情報マトリクス23を生成/更新する。この広域変数参照情報マトリクス23の内容は、ソースコードに変更が加えられ再コンパイルがおこなわれた場合にのみ変化し、GUI画面30上での各広域変数の配置指定の変更によって変化することはない。   FIG. 10 is a schematic diagram showing an example of the global variable reference information matrix according to the embodiment of the present invention. The global variable reference information matrix 23 is a table managed by the global variable arrangement designation / list display unit 21 of the global variable list display unit 5. The elements in the m-th row and the n-th column in the matrix are m-th row relocatable objects (example: file1.o, file2) when the arrangement of the global variable in the n-th column (example: g_var11, g_var12, ...) is changed. ..., And the reference code size (change amount) (example: 10, 20,..., 10, 10,...). The global variable arrangement designation / list display unit 21 receives the global variable reference information file 3 generated by the compiler 1 for each source file, and generates / updates the global variable reference information matrix 23. The contents of the global variable reference information matrix 23 change only when the source code is changed and recompilation is performed, and is not changed by the change of the designation designation of each global variable on the GUI screen 30. .

図10の広域変数参照情報マトリクス23は、複数の広域変数参照情報ファイル3をm行n列のマトリクスとして合成したものである。広域変数参照情報マトリクス23の1行が、1つの広域変数参照情報ファイル3に相当する。この場合、ファイル名は、file1.cから、file1.oと読み替えられる。   A wide area variable reference information matrix 23 in FIG. 10 is obtained by combining a plurality of wide area variable reference information files 3 as an m × n matrix. One row of the global variable reference information matrix 23 corresponds to one global variable reference information file 3. In this case, the file name is file1. c, file1. It can be read as o.

図1や図2の説明で示したように、従来技術において、プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するよう試行錯誤するためには、ソースコードの修正(広域変数にショートダイレクトアドレッシング可能メモリ領域へ配置することを指示する記述を追記)、コンパイル処理、及びリンク処理という一連のフローを繰り返す必要があった。
しかし、これに対して、本発明では、広域変数一覧表示部5のGUI画面30上でショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を指定し、実行可能オブジェクトサイズの予測処理(バーチャルリンク)を実行するというフローを繰り返すのみでよくなる。
As shown in the description of FIG. 1 and FIG. 2, in the prior art, in order to select a wide area variable so as to improve the code efficiency of the program and place it in a short direct addressable memory area, It was necessary to repeat a series of flow of correction (adding a description instructing that the variable is arranged in a short direct addressable memory area), compiling processing, and linking processing.
However, in the present invention, on the GUI screen 30 of the global variable list display unit 5, the global variable to be arranged in the short direct addressable memory area is designated, and the executable object size prediction process (virtual link) is performed. It only needs to repeat the flow of execution.

次に、本発明の実施の形態に係る実行可能オブジェクトのサイズ予測装置の動作(サイズ予測方法)に関して、添付図面を参照して説明する。図11は、本発明の実施の形態に係る実行可能オブジェクトのサイズ予測装置の動作(サイズ予測方法)を示すフローチャートである。この図は、ショートダイレクトアドレッシング可能メモリ領域に、広域変数を配置指定するときの処理のフローチャートを示している。まず、ソースコード2−1〜2−3について、コンパイルエラーやサイズオーバー以外のリンクエラーは解決されているものとする。また、コンパイル時に、広域変数参照情報ファイル3−1〜3−3を生成する指定がなされているものとする。   Next, the operation (size prediction method) of the executable object size prediction apparatus according to the embodiment of the present invention will be described with reference to the accompanying drawings. FIG. 11 is a flowchart showing the operation (size prediction method) of the executable object size prediction apparatus according to the embodiment of the present invention. This figure shows a flowchart of processing when a wide-area variable is designated to be allocated in a short direct addressable memory area. First, it is assumed that a link error other than a compile error or oversize has been solved for the source codes 2-1 to 2-3. In addition, it is assumed that the generation of the global variable reference information files 3-1 to 3-3 is made at the time of compilation.

まず、初回の処理として、図2で説明したステップS102〜S103と同様に、ユーザの入力操作に基づいてソースコード2(2−1〜2−3)に対してビルド処理が実行される。その後、コンパイラ1は、ソースコード2(2−1〜2−3)とメモリ参照命令サイズテーブル9とを入力として受け取り、広域変数配置指定ファイル6を参照しながら、ソースコード2(2−1〜2−3)に対してコンパイル処理を実行し、再配置可能オブジェクト4(4−1〜4−2)を生成する。そのとき、同時に、広域変数参照情報ファイル3(3−1〜3−3)も生成する。再配置可能オブジェクト4(4−1〜4−2)及び広域変数参照情報ファイル3(3−1〜3−3)は、記憶部10に格納される。ただし、初回の処理では、広域変数配置指定ファイル6が存在しない。そのため、コンパイラ1は、全ての広域変数が通常のメモリに配置指定されているものとして動作する。   First, as the first process, the build process is executed on the source code 2 (2-1 to 2-3) based on the user's input operation as in steps S102 to S103 described in FIG. Thereafter, the compiler 1 receives the source code 2 (2-1 to 2-3) and the memory reference instruction size table 9 as inputs, and refers to the global variable allocation designation file 6 while referring to the source code 2 (2-1 to 2). A compilation process is executed on 2-3) to generate relocatable objects 4 (4-1 to 4-2). At the same time, the global variable reference information file 3 (3-1 to 3-3) is also generated. The relocatable object 4 (4-1 to 4-2) and the global variable reference information file 3 (3-1 to 3-3) are stored in the storage unit 10. However, in the first process, the global variable arrangement designation file 6 does not exist. Therefore, the compiler 1 operates on the assumption that all the global variables are specified for placement in normal memory.

広域変数一覧表示部5の広域変数配置指定/一覧表示部21は、広域変数参照情報ファイル3(3−1〜3−3)の情報を取得し、当該情報に基づいて広域変数参照情報マトリクス23を生成する(ステップS01)。続いて、広域変数配置指定/一覧表示部21は、再配置可能オブジェクト4(4−1〜4−3)の情報を取得し、当該情報に基づいてオブジェクトサイズ情報テーブル22を生成する(ステップS02)。   The global variable placement designation / list display unit 21 of the global variable list display unit 5 acquires information of the global variable reference information file 3 (3-1 to 3-3), and based on the information, the global variable reference information matrix 23 is acquired. Is generated (step S01). Subsequently, the global variable arrangement designation / list display unit 21 acquires information on the relocatable objects 4 (4-1 to 4-3), and generates an object size information table 22 based on the information (step S02). ).

次に、広域変数配置指定/一覧表示部21は、広域変数配置指定ファイル6から、ショートダイレクトアドレッシング可能メモリ領域に配置指定されている広域変数の情報を取得する(ステップS03)。そして、広域変数配置指定/一覧表示部21は、それら広域変数参照情報マトリクス23、オブジェクトサイズ情報テーブル22、及び広域変数配置指定ファイル6の情報を集約してディスプレイ装置12に表示する。そのディスプレイ装置12での表示状況は、図5のGUI画面30に例示される。ただし、初回の処理では、広域変数配置指定ファイル6が存在しないため、全ての広域変数が通常のメモリに配置指定されているものとして表示される。   Next, the global variable placement designation / list display unit 21 acquires information on the global variables designated for placement in the short direct addressable memory area from the global variable placement designation file 6 (step S03). Then, the global variable arrangement designation / list display unit 21 aggregates and displays the information on the global variable reference information matrix 23, the object size information table 22, and the global variable arrangement designation file 6 on the display device 12. The display status on the display device 12 is exemplified in the GUI screen 30 of FIG. However, in the first process, since the global variable placement designation file 6 does not exist, all the wide variables are displayed as being designated in the normal memory.

ユーザは、サイズ予測装置50への入力操作により、広域変数一覧表示部5の広域変数配置指定/一覧表示部21(GUI画面30)上で、ショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を指定する(チェックボックスにチェックする)。すなわち、ユーザは、プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するように試行錯誤するときには、広域変数配置指定/一覧表示部21(GUI画面30)上でショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を指定する。ユーザは、サイズ予測装置50への入力操作により、バーチャルリンク実行ボタン33を押下する(ステップS04)。   The user designates a global variable to be arranged in the short direct addressable memory area on the global variable list designation / list display unit 21 (GUI screen 30) of the global variable list display unit 5 by an input operation to the size prediction device 50. Yes (check the check box). That is, when the user selects a wide area variable so as to improve the code efficiency of the program and places it in a short direct addressable memory area through trial and error, the user selects the wide area variable designation / list display unit 21 (GUI screen 30). Specify a global variable to be placed in the memory area where short direct addressing is possible. The user presses the virtual link execution button 33 by an input operation to the size prediction device 50 (step S04).

広域変数配置指定/一覧表示部21が、広域変数配置指定ファイル6を生成/更新する(ステップS05)。そして、広域変数配置指定/一覧表示部21が、実行可能オブジェクトのサイズ予測処理を実行する(ステップS06)。サイズ予測処理(バーチャルリンク処理)については後述される。   The global variable arrangement designation / list display unit 21 generates / updates the global variable arrangement designation file 6 (step S05). Then, the wide area variable designation / list display unit 21 executes an executable object size prediction process (step S06). The size prediction process (virtual link process) will be described later.

広域変数配置指定/一覧表示部21は、実行可能オブジェクト8のコードサイズは満足のいくものか否かを判断する(ステップS07)。判断は、例えば、予め設定された基準となるコードサイズ(ユーザが設定してもよい)との比較により行なうことができる。そして、実行可能オブジェクトのサイズが満足のいくものになる(ステップS07:YES)まで、広域変数一覧表示部5上で、広域変数の配置を指定し、バーチャルリンクを実行し直す(ステップS04〜ステップS06)。このように、2回目以降の広域変数配置指定とサイズ予測処理(バーチャルリンク;ステップS04〜ステップS06)は、広域変数一覧表示部5内のみで処理が完結する。すなわち、本実施の形態では、実行可能オブジェクト8のサイズ予測処理のフローを繰り返すのみで良いので、時間短縮ができる。   The global variable arrangement designation / list display unit 21 determines whether the code size of the executable object 8 is satisfactory (step S07). The determination can be made, for example, by comparison with a preset code size (which may be set by the user). Then, until the size of the executable object becomes satisfactory (step S07: YES), the location of the global variable is designated on the global variable list display unit 5, and the virtual link is executed again (step S04 to step S04). S06). As described above, the second and subsequent wide area variable designation and size prediction processing (virtual link; step S04 to step S06) are completed only within the wide area variable list display unit 5. That is, in the present embodiment, it is only necessary to repeat the flow of the size predicting process for the executable object 8, so that the time can be reduced.

その後、ユーザは、サイズ予測装置50への入力操作により、ソースコード2(2−1〜2−3)のビルドを実行する(ステップS08)。続いて、コンパイラ1は、広域変数配置指定ファイル6を参照し、ソースコード2(2−1〜2−3)をコンパイルして再配置可能オブジェクト4(4−1〜4−3)を生成する(ステップS09)。ここでコンパイルするときには、広域変数参照情報ファイル3(3−1〜3−3)の生成を指定する必要はない。次に、リンカ7は、再配置可能オブジェクトをリンクして、実行可能オブジェクト8を生成する(ステップS10)。   Thereafter, the user executes a build of the source code 2 (2-1 to 2-3) by an input operation to the size prediction device 50 (step S08). Subsequently, the compiler 1 refers to the global variable arrangement designation file 6 and compiles the source code 2 (2-1 to 2-3) to generate the relocatable object 4 (4-1 to 4-3). (Step S09). When compiling here, it is not necessary to specify the generation of the global variable reference information file 3 (3-1 to 3-3). Next, the linker 7 generates an executable object 8 by linking the relocatable objects (step S10).

以上のようにして、本実施の形態では、コード効率が向上した実行可能オブジェクトの作成をすることができる。   As described above, in the present embodiment, an executable object with improved code efficiency can be created.

次に、本発明の実施の形態に係るサイズ予測処理(バーチャルリンク処理)について説明する。サイズ予測処理(バーチャルリンク処理)は、上記図11におけるステップS06で実行された処理である。図12は、本発明の実施の形態に係るサイズ予測処理(バーチャルリンク処理)を示すフローチャートである。   Next, the size prediction process (virtual link process) according to the embodiment of the present invention will be described. The size prediction process (virtual link process) is a process executed in step S06 in FIG. FIG. 12 is a flowchart showing size prediction processing (virtual link processing) according to the embodiment of the present invention.

まず、広域変数配置指定/一覧表示部21は、GUI画面30の複数の広域変数の中から、一つの広域変数を選択する(ステップS21)。ただし、選択方法は、例えば一番上から順番に選択する方法に例示される。   First, the wide area variable designation / list display unit 21 selects one wide area variable from among a plurality of wide area variables on the GUI screen 30 (step S21). However, the selection method is exemplified by a method of selecting in order from the top, for example.

広域変数配置指定/一覧表示部21は、その広域変数の現在の配置領域と以前の配置領域とは異なるか否かを判定する(ステップS22)。ただし、現在の配置領域は、ユーザ入力操作終了後のGUI画面30のチェックボックスの有無(チェック有りならばショートダイレクトアドレッシング可能メモリ領域)で認定される。以前の配置領域は、広域変数配置指定ファイル6に含まれるか否か(含まれるならショートダイレクトアドレッシング可能メモリ領域)で認定される。そして、判定方法は、認定された両者の配置領域の変動の状態で行なう。ただし、初回の処理では、広域変数配置指定ファイルが存在しないため、全ての広域変数が通常のメモリに配置指定されているものとして動作する。具体的には、図5のGUI画面30の広域変数のチェックボックスのチェックに変化があったか(チェックがない状態からチェックされている状態、もしくは、チェックされている状態からチェックがない状態)を調べる。
そして、異なる(変化があった)場合(ステップS22:YES)はステップS23の処理へ、異ならない(変化がない)場合(ステップS22:NO)はステップS26の処理へ進む。
The wide area variable designation / list display unit 21 determines whether or not the current arrangement area of the wide area variable is different from the previous arrangement area (step S22). However, the current arrangement area is identified by the presence / absence of a check box on the GUI screen 30 after completion of the user input operation (short direct addressable memory area if checked). The previous allocation area is identified by whether or not it is included in the global variable allocation specification file 6 (if it is included, the memory area can be short direct addressable). Then, the determination method is performed in a state in which both of the recognized arrangement areas are changed. However, in the first process, since there is no wide area variable designation file, the operation is performed assuming that all wide variables are designated in the normal memory. Specifically, it is checked whether the check of the check box of the global variable on the GUI screen 30 in FIG. 5 has changed (the state checked from the unchecked state or the state checked from the checked state). .
If it is different (changed) (step S22: YES), the process proceeds to step S23. If not different (no change) (step S22: NO), the process proceeds to step S26.

広域変数配置指定/一覧表示部21は、配置領域の変化の態様を判定する(ステップS23)。変化の態様がショートダイレクトアドレッシング可能メモリ領域から通常のメモリ領域の場合(ステップS23:case−A)、ステップS24の処理へ進む。一方、変化の態様が、通常のメモリ領域からショートダイレクトアドレッシング可能メモリ領域の場合(ステップS23:case−B)、ステップS25の処理へ進む。すなわち、図5のGUI画面30の広域変数のチェックボックスのチェックが、チェックされている状態から、チェックがない状態になった場合(広域変数の配置領域を、“Saddr”から“Normal”に変更した場合:case−A)は、ステップS24の処理へ進む。一方、図5のGUI画面30の広域変数のチェックボックスのチェックが、チェックがない状態から、チェックされている状態になった場合(広域変数の配置領域を、“Normal”から“Saddr”に変更した場合:case−B)は、ステップS25の処理へ進む。   The wide-area variable placement designation / list display unit 21 determines the manner of change of the placement region (step S23). When the mode of change is from the short direct addressable memory area to the normal memory area (step S23: case-A), the process proceeds to step S24. On the other hand, when the mode of change is from a normal memory area to a short direct addressable memory area (step S23: case-B), the process proceeds to step S25. That is, when the check of the check box of the global variable on the GUI screen 30 in FIG. 5 changes from the checked state to the unchecked state (changes the global variable placement area from “Saddr” to “Normal”. In the case of: case-A), the process proceeds to step S24. On the other hand, when the check of the check box of the global variable on the GUI screen 30 in FIG. 5 changes from the unchecked state to the checked state (changes the allocation area of the global variable from “Normal” to “Saddr”. In the case of: case-B), the process proceeds to step S25.

広域変数配置指定/一覧表示部21は、ショートダイレクトアドレッシング可能メモリ領域から通常のメモリ領域への変化の場合(case−A)、以下の処理を実行する(ステップS24)。
まず、広域変数参照情報マトリクス23(図10)から、着目している広域変数を参照する再配置可能オブジェクト4のコードサイズ変化量を取得する。例えば、図5のg_var11に着目しているとする。この場合、図10の広域変数参照情報マトリクス23から、file1.oに関するコードサイズ変化量として、10を取得する。続いて、file2.0に関するコードサイズ変更量として、10を取得する。以下同様である。このコードサイズ変化量の取得処理は、図10の広域変数参照情報マトリクス23に登録されているファイル数分だけ行う。
そして、取得されたコードサイズ変化量を、オブジェクトサイズ情報テーブル22(図9)中の該当する再配置可能オブジェクト4のCODE属性セグメントサイズに加算する。例えば、図9のオブジェクトサイズ情報テーブル22において、ファイル名がfile1.oで、セグメント属性がCODEのサイズ欄の値100に、取得されたfile1.oのコードサイズ変化量10を加算する。ファイル名がfile2.oで、セグメント属性がCODEのサイズ欄の値200に、取得されたfile2.oのコードサイズ変化量10を加算する。以下同様である。このセグメント属性がCODEのサイズ欄への加算処理は、図9のオブジェクトサイズ情報テーブル22に登録されているファイル数分だけ行う。
In the case of the change from the short direct addressable memory area to the normal memory area (case-A), the wide area variable designation / list display unit 21 executes the following process (step S24).
First, from the global variable reference information matrix 23 (FIG. 10), the code size change amount of the relocatable object 4 that refers to the focused global variable is acquired. For example, assume that attention is paid to g_var11 in FIG. In this case, from the global variable reference information matrix 23 of FIG. As a code size change amount related to o, 10 is acquired. Subsequently, 10 is acquired as the code size change amount related to file 2.0. The same applies hereinafter. This code size change amount acquisition processing is performed for the number of files registered in the wide-area variable reference information matrix 23 of FIG.
Then, the obtained code size change amount is added to the CODE attribute segment size of the corresponding relocatable object 4 in the object size information table 22 (FIG. 9). For example, in the object size information table 22 of FIG. o, the file attribute of the obtained file1. The code size change amount 10 of o is added. The file name is file2. o, the file attribute of the obtained file2. The code size change amount 10 of o is added. The same applies hereinafter. The process of adding the segment attribute to the CODE size column is performed for the number of files registered in the object size information table 22 of FIG.

広域変数配置指定/一覧表示部21は、通常のメモリ領域からショートダイレクトアドレッシング可能メモリ領域への変化の場合(case−B)、以下の処理を実行する(ステップS25)。
まず、広域変数参照情報マトリクス23(図10)から、着目している広域変数を参照する再配置可能オブジェクト4のコードサイズ変化量を取得する。例えば、図5のg_var12に着目しているとする。この場合、図10の広域変数参照情報マトリクス23から、file1.oに関するコードサイズ変化量として、20を取得する。続いて、file2.0に関するコードサイズ変更量として、10を取得する。以下同様である。このコードサイズ変化量の取得処理は、図10の広域変数参照マトリクス23に登録されているファイル数分だけ行う。
そして、取得されたコードサイズ変化量を、オブジェクトサイズ情報テーブル22(図9)中の該当する再配置可能オブジェクト4のCODE属性セグメントサイズから減算する。例えば、図9のオブジェクトサイズ情報テーブル22において、ファイル名がfile1.oで、セグメント属性がCODEのサイズ欄の値100から、取得されたfile1.oのコードサイズ変化量20を減算する。ファイル名がfile2.oで、セグメント属性がC0DEのサイズ欄の値200から、取得されたfile2.oのコードサイズ変化量10を減算する。以下同様である。このセグメント属性がCODEのサイズ欄への減算処理は、図9のオブジェクトサイズ情報テーブル22に登録されているファイル数分だけ行う。
In the case of a change from the normal memory area to the short direct addressable memory area (case-B), the wide area variable designation / list display unit 21 executes the following process (step S25).
First, from the global variable reference information matrix 23 (FIG. 10), the code size change amount of the relocatable object 4 that refers to the focused global variable is acquired. For example, assume that attention is paid to g_var12 in FIG. In this case, from the global variable reference information matrix 23 of FIG. 20 is acquired as the code size change amount related to o. Subsequently, 10 is acquired as the code size change amount related to file 2.0. The same applies hereinafter. This code size change amount acquisition processing is performed for the number of files registered in the wide-area variable reference matrix 23 of FIG.
Then, the obtained code size change amount is subtracted from the CODE attribute segment size of the corresponding relocatable object 4 in the object size information table 22 (FIG. 9). For example, in the object size information table 22 of FIG. o, the file attribute obtained from the value 100 in the size column of the CODE segment attribute is file1. The code size change amount 20 of o is subtracted. The file name is file2. o, the file 2. obtained from the value 200 in the size field of the segment attribute C0DE. The code size change amount 10 of o is subtracted. The same applies hereinafter. The subtraction processing to the size column in which the segment attribute is CODE is performed for the number of files registered in the object size information table 22 of FIG.

広域変数配置指定/一覧表示部21は、GUI画面30の複数の広域変数の全てに対して、以上の処理(ステップS22〜ステップS25)を繰り返す。すなわち、広域変数配置指定/一覧表示部21は、GUI画面30の複数の広域変数の全てについて、上記処理が終了したか否かを判定する(ステップS26)。そして、広域変数の全てについて上記処理が終了した場合(ステップS26:YES)はステップS27の処理へ、広域変数の全てについて上記処理が終了していない場合(ステップS26:NO)はステップS21の処理へ進む。   The global variable arrangement designation / list display unit 21 repeats the above processing (steps S22 to S25) for all of the multiple global variables on the GUI screen 30. That is, the wide area variable designation / list display unit 21 determines whether or not the above processing has been completed for all of the plurality of wide area variables on the GUI screen 30 (step S26). If the above process is completed for all of the wide variables (step S26: YES), the process proceeds to step S27. If the above process is not completed for all of the wide variables (step S26: NO), the process of step S21 is performed. Proceed to

次に、広域変数配置指定/一覧表示部21は、以下の処理により、オブジェクトサイズ情報テーブル22を更新する(ステップS27)。
各再配置可能オブジェクト4について、ショートダイレクトアドレッシング可能領域に配置指定されている広域変数のサイズを、アラインメントを考慮して加算する。すなわち、図5のGUI画面30上の各広域変数に対して、チェックボックスのチェックがチェックされている状態で、且つ、ファイル名欄のファイル名が同一の広域変数のサイズを加算する。例えば、file1.cの場合、チェックボックスのチェックがチェックされている状態で、且つ、ファイル名欄のファイル名がfile1.cの広域変数のサイズを加算する。
そして、オブジェクトサイズ情報テーブル22中の該当する再配置可能オブジェクト4のSADDR属性セグメントサイズを更新する。すなわち、広域変数のサイズを加算した結果に基づいて、図9のオブジェクトサイズ情報テーブル22の該当箇所を更新する。例えばfile1.cの場合、ファイル名がfile1.o、セグメント属性がSADDRのサイズ欄を、そのサイズ欄の値に上記広域変数のサイズを加算した結果に置き換えることで、更新する。
Next, the wide-area variable arrangement designation / list display unit 21 updates the object size information table 22 by the following processing (step S27).
For each relocatable object 4, the size of the global variable designated for placement in the short direct addressable area is added in consideration of alignment. That is, for each global variable on the GUI screen 30 in FIG. 5, the size of the global variable having the same file name in the file name column is added while the check box is checked. For example, file1. In the case of c, the check box is checked and the file name in the file name column is file1. Add the size of the global variable of c.
Then, the SADDR attribute segment size of the corresponding relocatable object 4 in the object size information table 22 is updated. That is, the corresponding part of the object size information table 22 in FIG. 9 is updated based on the result of adding the sizes of the global variables. For example, file1. In the case of c, the file name is file1. o, Update by replacing the size column with the segment attribute SADDR with the result of adding the size of the global variable to the value of the size column.

続いて、広域変数配置指定/一覧表示部21は、以下の処理により、オブジェクトサイズ情報テーブル22を更新する(ステップS28)。
各再配置可能オブジェクト4について、通常のメモリ領域に配置指定されている広域変数のサイズを、アラインメントを考慮して加算する。すなわち、図5のGUI画面30上の各広域変数に対して、チェックボックスのチェックがチェックされていない状態で、且つ、ファイル名欄のファイル名が同一の広域変数のサイズを加算する。例えば、file2.cの場合、チェックボックスのチェックがチェックされていない状態で、且つ、ファイル名欄のファイル名がfile2.cの広域変数のサイズを加算する。
そして、オブジェクトサイズ情報テーブル22中の該当する再配置可能オブジェクト4のDATA属性セグメントサイズを更新する。すなわち、広域変数のサイズを加算した結果に基づいて、図9のオブジェクトサイズ情報テーブル22の該当箇所を更新する。例えば、file2.cの場合、ファイル名がfile2.o、セグメント属性がDATAのサイズ欄を、そのサイズ欄の値に上記広域変数のサイズを加算した結果に置き換えることで、更新する。
Subsequently, the global variable arrangement designation / list display unit 21 updates the object size information table 22 by the following processing (step S28).
For each relocatable object 4, the size of the global variable designated for placement in the normal memory area is added in consideration of the alignment. That is, for each global variable on the GUI screen 30 in FIG. 5, the size of the global variable having the same file name in the file name column is added while the check box is not checked. For example, file2. In the case of c, the check box is not checked, and the file name in the file name column is file2. Add the size of the global variable of c.
Then, the DATA attribute segment size of the corresponding relocatable object 4 in the object size information table 22 is updated. That is, the corresponding part of the object size information table 22 in FIG. 9 is updated based on the result of adding the sizes of the global variables. For example, file2. In the case of c, the file name is file2. o, Update by replacing the size field of which the segment attribute is DATA with the result of adding the size of the global variable to the value of the size field.

その後、広域変数配置指定/一覧表示部21は、以上のサイズ変更後の再配置可能オブジェクト4のコードサイズに基づいて、リンカ7と同様のアルゴリズムで実行可能オブジェクト8のサイズを計算する(ステップS29)。すなわち、図9のオブジェクトサイズ情報テーブル22の属性が同じ行のサイズを加算する。そして、それぞれ結果を表示する。図5のGUI画面30上では、実行可能オブジェクトサイズ(予測値)表示欄32−1に、CODE属性の行のサイズを、アライメントを考慮して加算した結果を表示している。同様に、表示欄32−2、32−3に、それぞれSADDR属性とDATA属性の行のサイズを、アライメントを考慮して加算した結果を表示している。   Thereafter, the global variable placement designation / list display unit 21 calculates the size of the executable object 8 by the same algorithm as that of the linker 7 based on the code size of the relocatable object 4 after the above size change (step S29). ). That is, the sizes of the rows having the same attribute in the object size information table 22 of FIG. 9 are added. Each result is displayed. On the GUI screen 30 of FIG. 5, the executable object size (predicted value) display column 32-1 displays the result of adding the CODE attribute line size in consideration of alignment. Similarly, the display columns 32-2 and 32-3 display the results of adding the sizes of the rows of the SADDR attribute and the DATA attribute in consideration of the alignment.

以上のようにして、本発明の実施の形態に係るサイズ予測処理(バーチャルリンク処理)が行なわれる。   As described above, the size prediction process (virtual link process) according to the embodiment of the present invention is performed.

本実施の形態に係るサイズ予測処理(バーチャルリンク)による実行可能オブジェクト8のコードサイズの予測処理は、コンパイル処理およびリンク処理に比べて高速である。このため、プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するよう試行錯誤する際に要する時間を短縮することができる。   The code size prediction process of the executable object 8 by the size prediction process (virtual link) according to the present embodiment is faster than the compile process and the link process. For this reason, it is possible to shorten the time required for trial and error to select a wide area variable so as to improve the code efficiency of the program and arrange it in the memory area capable of short direct addressing.

従来技術において、1回のソースコード修正に要する時間をt_m、1回のコンパイル処理に要する時間をt_c、1回のリンク処理に要する時間をt_lとする。プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するようN回試行錯誤するとき、これに要する総時間t_total_1は、
t_total_1=N×(t_m+t_c+t_l) ・・・式(1)
本発明において、広域変数一覧表示部5のGUI画面30上でショートダイレクトアドレッシング可能メモリ領域に配置する広域変数を指定するのに要する時間をt_m’、広域変数参照情報ファイル3の生成を指定したコンパイル処理に要する時間をt_cfile、実行可能オブジェクトサイズの予測処理において、再配置可能オブジェクト4のサイズの変化量を計算するのに要する時間をt_e、リンカ7と同様のアルゴリズムにより実行可能オブジェクト8のサイズを計算するのに要する時間をt_vlとすると、N回試行錯誤するのに要する総時間(t_total_2)は、
t_tolal_2
=t_cfile+N×(t_m’+t_e+t_vl)+(t_c+t_l) ・・・式(2)
ここで、t_m≒t_tm’、t_l≒t_vlであり、t_cfile=2×t_cと仮定すると、式(2)は、
total_2
≒N×(t_m+t_l)+N×t_e+3×t_c+t_l ・・・式(2)’
となる。
ここで、t_e<t_cであるので、N≫1のとき、t_total_2<t_total_1となる。すなわち、従来技術でのN回試行錯誤の総時間と比較して、本発明でのN回試行錯誤の総時間の方が短くなる。
In the prior art, the time required for one source code correction is t_m, the time required for one compilation process is t_c, and the time required for one link process is t_l. When selecting a global variable so as to improve the code efficiency of the program and performing trial and error N times so as to place it in a short direct addressable memory area, the total time t_total_1 required for this is:
t_total_1 = N × (t_m + t_c + t_l) (1)
In the present invention, the time required for designating a global variable to be arranged in the short direct addressable memory area on the GUI screen 30 of the global variable list display unit 5 is t_m ′, and the compilation specifying the generation of the global variable reference information file 3 is specified. The time required for processing is t_cfile, and the time required to calculate the amount of change in the size of the relocatable object 4 is t_e, and the size of the executable object 8 is calculated by the same algorithm as the linker 7 If the time required for the calculation is t_vl, the total time required for N trials and errors (t_total_2) is
t_toal_2
= T_cfile + N × (t_m ′ + t_e + t_vl) + (t_c + t_l) (2)
Here, assuming that t_m≈t_tm ′, t_l≈t_vl, and t_cfile = 2 × t_c, Equation (2) is
total_2
≈ N × (t_m + t_l) + N × t_e + 3 × t_c + t_l Equation (2) ′
It becomes.
Here, since t_e <t_c, when N >> 1, t_total_2 <t_total_1. That is, the total time of N trials and errors in the present invention is shorter than the total time of N trials and errors in the prior art.

本発明では、コンパイラ1が出力した広域変数の参照情報(広域変数参照情報ファイル3)と再配置可能オブジェクト4のサイズ情報に基づいて、広域変数一覧表示部5により、ある広域変数の配置位置を変更した場合の実行可能オブジェクトサイズの変化を予測する。これにより、プログラムのコード効率が向上するように広域変数を選び出し、ショートダイレクトアドレッシング可能メモリ領域に配置するよう試行錯誤する際に要する時間を短縮することができる。つまり、開発期間を短縮することができる。   In the present invention, based on the reference information (global variable reference information file 3) of the global variable output by the compiler 1 and the size information of the relocatable object 4, the global variable list display unit 5 determines the location of a certain global variable. Predict changes in executable object size when changed. As a result, it is possible to reduce the time required for trial and error to select a wide area variable so as to improve the code efficiency of the program and to arrange it in the short direct addressable memory area. That is, the development period can be shortened.

本発明のプログラム、データ構造は、コンピュータ読取可能な記憶媒体に記録され、その記憶媒体から情報処理装置に読み込まれても良い。   The program and data structure of the present invention may be recorded on a computer-readable storage medium and read into the information processing apparatus from the storage medium.

本発明は上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変形又は変更され得ることは明らかである。   The present invention is not limited to the embodiments described above, and it is obvious that the embodiments can be appropriately modified or changed within the scope of the technical idea of the present invention.

1 コンパイラ
2、2−1〜2−3 ソースコード
3、3−1〜3−3 広域変数参照情報ファイル
4、4−1〜4−3 再配置可能オブジェクト
5 広域変数一覧表示部
6 広域変数配置指定ファイル
7 リンカ
8 実行可能オブジェクト
9 メモリ参照命令サイズテーブル
10 記憶部
11 入力装置
12 ディスプレイ装置
21 広域変数配置指定/一覧表示部
22 オブジェクトサイズ情報テーブル
23 広域変数参照情報マトリクス
30 GUI画面
31 テーブル
32、32−1〜32−3 実行可能オブジェクトサイズ(予測値)表示欄
33 バーチャルリンク実行ボタン
50 サイズ予測装置
101 コンパイラ
102、102−1〜102−3 ソースコード
104、104−1〜104−3 再配置可能オブジェクト
107 リンカ
108 実行可能オブジェクト
DESCRIPTION OF SYMBOLS 1 Compiler 2, 2-1 to 2-3 Source code 3, 3-1 to 3-3 Global variable reference information file 4, 4-1 to 4-3 Relocatable object 5 Global variable list display part 6 Global variable allocation Designated file 7 Linker 8 Executable object 9 Memory reference instruction size table 10 Storage unit 11 Input device 12 Display device 21 Wide area variable arrangement designation / list display section 22 Object size information table 23 Wide area variable reference information matrix 30 GUI screen 31 Table 32, 32-1 to 32-3 Executable Object Size (Predicted Value) Display Field 33 Virtual Link Execution Button 50 Size Predictor 101 Compiler 102, 102-1 to 102-3 Source Code 104, 104-1 to 104-3 Relocation Possible object 107 Linker 108 Line objects

Claims (13)

複数のソースコードを翻訳して複数の再配置可能オブジェクトを生成し、メモリ参照命令サイズテーブル及び前記複数のソースコードに基づいて複数の広域変数参照情報ファイルを生成するコンパイラと、
前記複数の再配置可能オブジェクトと前記複数の広域変数参照情報ファイルとに基づいて、前記複数の再配置可能オブジェクトをリンクして生成される実行可能オブジェクトのサイズ予測を実行する広域変数一覧表示部と
を具備し、
前記メモリ参照命令サイズテーブルは、広域変数がショートダイレクトアドレッシング可能領域としての第1領域に配置されている場合に生成する命令のコードサイズと、当該広域変数が前記第1領域以外のメモリ領域としての第2領域に配置されている場合に生成する命令のコードサイズとのコードサイズ差を、メモリ参照命令ごとに記述し、
前記ファイル広域変数参照情報ファイルは、前記ソースコードに含まれる各広域変数が前記第1領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズと、前記広域変数が前記第2領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズとのコードサイズ差を示し、
前記広域変数一覧表示部は、
前記広域変数参照情報ファイルに基づいて、前記各広域変数と、当該各広域変数の配置される領域と、当該各広域変数のコードサイズ差との関係を算出し、
前記各広域変数のうちの配置される領域を変更される変更広域変数の入力に基づいて、前記算出結果から前記変更広域変数のコードサイズ差を取得して、当該コードサイズ差を用いて、前記変更広域変数を含む前記再配置可能オブジェクトのコードサイズを調整し、
調整後の前記複数の再配置可能オブジェクトの前記コードサイズに基づいて、リンクと同じアルゴリズムを用いて実行可能オブジェクトサイズの予測値を算出する
実行可能オブジェクトのサイズ予測装置。
A compiler that translates a plurality of source codes to generate a plurality of relocatable objects, and generates a plurality of global variable reference information files based on the memory reference instruction size table and the plurality of source codes;
A global variable list display unit that performs size prediction of an executable object generated by linking the plurality of relocatable objects based on the plurality of relocatable objects and the plurality of global variable reference information files; Comprising
The memory reference instruction size table includes a code size of an instruction to be generated when a global variable is arranged in the first area as a short direct addressable area, and the global variable as a memory area other than the first area. Describe the code size difference with the code size of the instruction to be generated when arranged in the second area for each memory reference instruction,
The file global variable reference information file includes a code size required to refer to the global variable when each global variable included in the source code is arranged in the first area, and the global variable includes Indicating the code size difference from the code size required to refer to the global variable when it is assumed to be arranged in the second region,
The global variable list display section
Based on the global variable reference information file, calculate the relationship between the global variables, the area where the global variables are arranged, and the code size difference of the global variables,
Based on the input of the changed global variable to change the area to be arranged in each of the global variables, obtain the code size difference of the changed global variable from the calculation result, using the code size difference, Adjust the code size of the relocatable object containing the change global variable,
An executable object size predicting device that calculates a predicted value of an executable object size using the same algorithm as a link based on the code sizes of the plurality of relocatable objects after adjustment.
請求項1に記載の実行可能オブジェクトのサイズ予測装置において、
前記広域変数一覧表示部は、
前記再配置可能オブジェクトに基づいて、前記再配置可能オブジェクトと、当該再配置可能オブジェクトに含まれるセグメントと、当該セグメントのサイズとを関連付けたオブジェクトサイズ情報テーブルを生成し、
前記広域変数参照情報ファイルに基づいて、前記各広域変数の配置される領域を変更した場合の、前記再配置可能オブジェクトの前記コードサイズ差を示す広域変数参照情報マトリクスを生成し、
前記オブジェクトサイズ情報テーブルと、前記広域変数参照情報マトリクスとに基づいて、前記各広域変数と、当該各広域変数の配置される領域と、当該各広域変数の前記コードサイズ差との関係を算出する
実行可能オブジェクトのサイズ予測装置。
The apparatus for predicting the size of an executable object according to claim 1,
The global variable list display section
Based on the relocatable object, generate an object size information table associating the relocatable object, a segment included in the relocatable object, and the size of the segment,
Based on the global variable reference information file, generate a global variable reference information matrix indicating the code size difference of the relocatable object when the area where each global variable is arranged is changed,
Based on the object size information table and the global variable reference information matrix, the relationship between the global variables, the area where the global variables are arranged, and the code size difference of the global variables is calculated. Executable object size prediction device.
請求項1に記載の実行可能オブジェクトのサイズ予測装置において、
前記広域変数一覧表示部は、前記変更広域変数に基づいて、前記第1領域に配置する広域変数を指定する広域変数配置指定ファイルを生成する
実行可能オブジェクトのサイズ予測装置。
The apparatus for predicting the size of an executable object according to claim 1,
The global variable list display unit generates a global variable arrangement designation file that designates a global variable to be arranged in the first area based on the changed global variable.
請求項1に記載の実行可能オブジェクトのサイズ予測装置において、
前記広域変数一覧表示部は、
前記算出結果を表示装置に表示し、
前記表示に対してユーザが入力装置を介して入力する前記変更広域変数を受信する
実行可能オブジェクトのサイズ予測装置。
The apparatus for predicting the size of an executable object according to claim 1,
The global variable list display section
Displaying the calculation result on a display device;
An apparatus for predicting the size of an executable object that receives the changed global variable that a user inputs to the display via an input device.
請求項4に記載の実行可能オブジェクトのサイズ予測装置において、
前記広域変数一覧表示部は、
前記調整後の前記複数の再配置可能オブジェクトの前記コードサイズを前記表示装置に表示し、
前記第1領域の残量が不足した場合、残量不足の旨を前記表示装置に表示する
実行可能オブジェクトのサイズ予測装置。
The size estimation apparatus of the executable object according to claim 4,
The global variable list display section
Displaying the code size of the plurality of relocatable objects after the adjustment on the display device;
When the remaining amount of the first area is insufficient, an indication that the remaining amount is insufficient is displayed on the display device.
請求項4又は5に記載の実行可能オブジェクトのサイズ予測装置において、
前記広域変数一覧表示部は、
前記予測値を前記表示装置に表示し、
前記予測値がROMサイズを超えた場合、サイズオーバーした旨を前記表示装置に表示する
実行可能オブジェクトのサイズ予測装置。
In the size estimation apparatus of the executable object of Claim 4 or 5,
The global variable list display section
Displaying the predicted value on the display device;
When the predicted value exceeds the ROM size, an indication that the size has been exceeded is displayed on the display device.
複数のソースコードを翻訳して複数の再配置可能オブジェクトを生成するステップと、
メモリ参照命令サイズテーブル及び前記複数のソースコードに基づいて複数の広域変数参照情報ファイルを生成するステップと、
前記複数の再配置可能オブジェクトと前記複数の広域変数参照情報ファイルとに基づいて、前記複数の再配置可能オブジェクトをリンクして生成される実行可能オブジェクトのサイズ予測を実行するステップと
を具備し、
前記メモリ参照命令サイズテーブルは、広域変数がショートダイレクトアドレッシング可能領域としての第1領域に配置されている場合に生成する命令のコードサイズと、当該広域変数が前記第1領域以外のメモリ領域としての第2領域に配置されている場合に生成する命令のコードサイズとのコードサイズ差を、メモリ参照命令ごとに記述し、
前記ファイル広域変数参照情報ファイルは、前記ソースコードに含まれる各広域変数が前記第1領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズと、前記広域変数が前記第2領域に配置されていると仮定した場合における当該広域変数を参照するのに要するコードサイズとのコードサイズ差を示し、
前記サイズ予測を実行するステップは、
前記広域変数参照情報ファイルに基づいて、前記各広域変数と、当該各広域変数の配置される領域と、当該各広域変数のコードサイズ差との関係を算出するステップと、
前記各広域変数のうちの配置される領域を変更される変更広域変数の入力に基づいて、前記算出結果から前記変更広域変数のコードサイズ差を取得して、当該コードサイズ差を用いて、前記変更広域変数を含む前記再配置可能オブジェクトのコードサイズを調整するステップと、
調整後の前記複数の再配置可能オブジェクトの前記コードサイズに基づいて、リンクと同じアルゴリズムを用いて実行可能オブジェクトサイズの予測値を算出するステップと
を備える
実行可能オブジェクトのサイズ予測方法。
Translating multiple source code to generate multiple relocatable objects;
Generating a plurality of global variable reference information files based on a memory reference instruction size table and the plurality of source codes;
Performing size prediction of an executable object generated by linking the plurality of relocatable objects based on the plurality of relocatable objects and the plurality of global variable reference information files, and
The memory reference instruction size table includes a code size of an instruction to be generated when a global variable is arranged in the first area as a short direct addressable area, and the global variable as a memory area other than the first area. Describe the code size difference with the code size of the instruction to be generated when arranged in the second area for each memory reference instruction,
The file global variable reference information file includes a code size required to refer to the global variable when each global variable included in the source code is arranged in the first area, and the global variable includes Indicating the code size difference from the code size required to refer to the global variable when it is assumed to be arranged in the second region,
Performing the size prediction comprises:
Based on the global variable reference information file, calculating a relationship between each global variable, an area where the global variable is arranged, and a code size difference between the global variables;
Based on the input of the changed global variable to change the area to be arranged in each of the global variables, obtain the code size difference of the changed global variable from the calculation result, using the code size difference, Adjusting the code size of the relocatable object including a modified global variable;
A method for predicting an executable object size based on the code sizes of the plurality of relocatable objects after adjustment using the same algorithm as the link.
請求項7に記載の実行可能オブジェクトのサイズ予測方法において、
前記関係を算出するステップは、
前記再配置可能オブジェクトに基づいて、前記再配置可能オブジェクトと、当該再配置可能オブジェクトに含まれるセグメントと、当該セグメントのサイズとを関連付けたオブジェクトサイズ情報テーブルを生成するステップと、
前記広域変数参照情報ファイルに基づいて、前記各広域変数の配置される領域を変更した場合の、前記再配置可能オブジェクトの前記コードサイズ差を示す広域変数参照情報マトリクスを生成するステップと、
前記オブジェクトサイズ情報テーブルと、前記広域変数参照情報マトリクスとに基づいて、前記各広域変数と、当該各広域変数の配置される領域と、当該各広域変数の前記コードサイズ差との関係を算出するステップと
を含む
実行可能オブジェクトのサイズ予測方法。
The method for predicting the size of an executable object according to claim 7,
The step of calculating the relationship includes:
Generating an object size information table associating the relocatable object, the segment included in the relocatable object, and the size of the segment based on the relocatable object;
Generating a global variable reference information matrix indicating the code size difference of the relocatable object when the area in which each global variable is arranged is changed based on the global variable reference information file;
Based on the object size information table and the global variable reference information matrix, the relationship between the global variables, the area where the global variables are arranged, and the code size difference of the global variables is calculated. A method for predicting the size of an executable object including steps and.
請求項7に記載の実行可能オブジェクトのサイズ予測方法において、
前記予測値を算出するステップは、前記変更広域変数に基づいて、前記第1領域に配置する広域変数を指定する広域変数配置指定ファイルを生成するステップを含む
実行可能オブジェクトのサイズ予測方法。
The method for predicting the size of an executable object according to claim 7,
The step of calculating the predicted value includes a step of generating a wide area variable designation file for designating a global variable to be arranged in the first area based on the changed global variable.
請求項7に記載の実行可能オブジェクトのサイズ予測方法において、
前記コードサイズを調整するステップは、
前記算出結果を表示装置に表示するステップと、
前記表示に対してユーザが入力装置を介して入力する前記変更広域変数を受信するステップと
を含む
実行可能オブジェクトのサイズ予測方法。
The method for predicting the size of an executable object according to claim 7,
The step of adjusting the code size includes:
Displaying the calculation result on a display device;
Receiving the modified global variable that the user inputs to the display via an input device. A method for predicting the size of an executable object.
請求項10に記載の実行可能オブジェクトのサイズ予測方法において、
前記コードサイズを調整するステップは、
前記調整後の前記複数の再配置可能オブジェクトの前記コードサイズを前記表示装置に表示するステップと、
前記第1領域の残量が不足した場合、残量不足の旨を前記表示装置に表示するステップと
を更に含む
実行可能オブジェクトのサイズ予測方法。
The method for predicting the size of an executable object according to claim 10.
The step of adjusting the code size includes:
Displaying the code size of the plurality of relocatable objects after the adjustment on the display device;
A method for predicting the size of an executable object, further comprising: displaying on the display device that the remaining capacity of the first area is insufficient.
請求項10又は11に記載の実行可能オブジェクトのサイズ予測方法において、
前記予測値を算出するステップは、
前記予測値を前記表示装置に表示するステップと、
前記予測値がROMサイズを超えた場合、サイズオーバーした旨を前記表示装置に表示するステップと
を含む
実行可能オブジェクトのサイズ予測方法。
The method for predicting the size of an executable object according to claim 10 or 11,
The step of calculating the predicted value includes
Displaying the predicted value on the display device;
When the predicted value exceeds the ROM size, a display indicating that the size has been exceeded is displayed on the display device.
請求項7乃至12のいずれか一項に記載の実行可能オブジェクトのサイズ予測方法をコンピュータに実行させるプログラム。   A program that causes a computer to execute the method for predicting the size of an executable object according to any one of claims 7 to 12.
JP2009260469A 2009-11-13 2009-11-13 Device, method and program for predicting size of executable object Pending JP2011107848A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009260469A JP2011107848A (en) 2009-11-13 2009-11-13 Device, method and program for predicting size of executable object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009260469A JP2011107848A (en) 2009-11-13 2009-11-13 Device, method and program for predicting size of executable object

Publications (1)

Publication Number Publication Date
JP2011107848A true JP2011107848A (en) 2011-06-02

Family

ID=44231265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009260469A Pending JP2011107848A (en) 2009-11-13 2009-11-13 Device, method and program for predicting size of executable object

Country Status (1)

Country Link
JP (1) JP2011107848A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012157732A1 (en) 2011-05-13 2012-11-22 Dow Corning Toray Co., Ltd. Method of protecting transparent nonmetallic electroconductive parts

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934725A (en) * 1995-07-15 1997-02-07 Nec Corp Device and method for processing language
JPH10320211A (en) * 1997-05-15 1998-12-04 Fujitsu Ltd Compiler and record medium for recording program for compiler
JPH11338709A (en) * 1998-03-27 1999-12-10 Nec Corp Generating method for link directive file and tool for the file generation
JP2000339173A (en) * 1999-05-26 2000-12-08 Nec Microcomputer Technology Ltd Language processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934725A (en) * 1995-07-15 1997-02-07 Nec Corp Device and method for processing language
JPH10320211A (en) * 1997-05-15 1998-12-04 Fujitsu Ltd Compiler and record medium for recording program for compiler
JPH11338709A (en) * 1998-03-27 1999-12-10 Nec Corp Generating method for link directive file and tool for the file generation
JP2000339173A (en) * 1999-05-26 2000-12-08 Nec Microcomputer Technology Ltd Language processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012157732A1 (en) 2011-05-13 2012-11-22 Dow Corning Toray Co., Ltd. Method of protecting transparent nonmetallic electroconductive parts

Similar Documents

Publication Publication Date Title
CN101697131B (en) Method and device for dynamically loading relocatable file
JP4903686B2 (en) Flash memory programming
CN100481007C (en) Method and system for performing link-time code optimization without additional code analysis
EP3084596B1 (en) Executable code for constrained computing environments
US9841953B2 (en) Pluggable components for runtime-image generation
CN102722387B (en) Dynamic patching method and device
JP6432450B2 (en) Parallel computing device, compiling device, parallel processing method, compiling method, parallel processing program, and compiling program
US20070006201A1 (en) Method and system for generating and applying patches to a computer program concurrently with its execution
US7788661B2 (en) Method and system for applying patches to a computer program concurrently with its execution
CN101311901B (en) Program re-writing apparatus
CN110457044A (en) Compilation Method, device and the electronic equipment of Haxe application program
CN116401003A (en) Android application running method, system and storage medium based on desktop operating system
JP2011107848A (en) Device, method and program for predicting size of executable object
JP6292096B2 (en) Programmable controller system and its support device
KR100662846B1 (en) Data processing system and method
Sidiropoulos et al. Jitpr: A framework for supporting fast application's implementation onto fpgas
US20050055678A1 (en) Method and apparatus for managing software in computer system using virtual machine
JP2015125713A (en) Programmable controller and system, support device thereof, programmable controller, and program
Unat et al. Tiling as a durable abstraction for parallelism and data locality
US8595675B1 (en) Local objective optimization in global placement of an integrated circuit design
JP2007080049A (en) Built-in program generation method, built-in program development system and information table section
KR101670916B1 (en) Method for storing function and system device using the same
JP4898365B2 (en) Embedded program development apparatus and program automatic generation method
JP2014010661A (en) Program, method and device for branch address management
JP5660386B2 (en) Memory allocation management device, memory allocation management method, memory allocation management program, and program creation system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130513

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130917