JP7035751B2

Code conversion device, code conversion method, and code conversion program

Abstract

This record has no abstract on file.

JP7035751B2, drawing sheet 1
Sheet 1 of 25

Term

11.5 yearsleft in the term

Expires 12 April 2038.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

10 claims: 4 independent, 6 dependent

  1. 1
    複数の配列のデータ定義と、前記複数の配列に対する所定の演算と、前記所定の演算の演算結果を表す配列のデータ定義とを含む、第1コードを記憶する記憶部と、前記第1コードに含まれる前記複数の配列のデータ定義と前記演算結果を表す配列のデータ定義とを、構造体配列のデータ定義に変換し、前記第1コードに含まれる前記所定の演算を、前記構造体配列に対する演算に変換する変換部と、前記複数の配列各々の異なるデータに対して、前記構造体配列に対する演算を並列に実行する所定の命令を含む、第2コードを生成する生成部と、を備えることを特徴とするコード変換装置。
  2. 2
    前記所定の命令は、複数のレジスタそれぞれに格納された配列のデータに対して、前記構造体配列に対する演算を実行し、演算結果を表す配列のデータを所定のレジスタに書き込む命令であり、前記第2コードは、メモリに連続して格納された複数の構造体配列のデータを読み出して、各構造体配列のデータに含まれる前記複数の配列のデータを、前記複数のレジスタにそれぞれ書き込む命令と、前記所定のレジスタから前記演算結果を表す配列のデータを読み出して、前記メモリに格納された各構造体配列のデータに含まれる、前記演算結果を表す配列のデータの位置に書き込む命令と、をさらに含むことを特徴とする請求項1記載のコード変換装置。
  3. 3
    前記所定の命令は、複数のレジスタそれぞれに格納された配列のデータに対して、前記構造体配列に対する演算を実行し、演算結果を表す配列のデータを所定のレジスタに書き込む命令であり、前記第2コードは、メモリに連続して格納された複数の構造体配列のデータを読み出して、第1レジスタに連続して書き込む命令と、前記第1レジスタから、各構造体配列のデータに含まれる同じ配列のデータの位置を指定して、指定した位置のデータを読み出し、前記複数のレジスタのうち同じレジスタに連続して書き込む命令と、前記所定のレジスタから前記演算結果を表す配列のデータを読み出し、前記メモリに格納された各構造体配列のデータに含まれる、前記演算結果を表す配列のデータの位置を指定して、前記所定のレジスタから読み出したデータを前記メモリの指定した位置に書き込む命令と、をさらに含むことを特徴とする請求項1記載のコード変換装置。
  4. 4
    前記変換部は、データ定義の変換を示すコンパイラオプションに従って、前記第1コードに含まれる配列の中から、前記複数の配列と前記演算結果を表す配列とを選択することを特徴とする請求項1乃至3のいずれか1項に記載のコード変換装置。
  5. 5
    前記第1コードは、前記複数の配列と前記演算結果を表す配列とを指定する制御文を含み、前記変換部は、前記制御文に従って、前記第1コードに含まれる配列の中から、前記複数の配列と前記演算結果を表す配列とを選択することを特徴とする請求項1乃至3のいずれか1項に記載のコード変換装置。
  6. 6
    前記変換部は、前記第1コードに含まれる配列のアクセス頻度を示すプロファイル情報を用いて、前記第1コードに含まれる配列の中から、前記複数の配列と前記演算結果を表す配列とを選択することを特徴とする請求項1乃至3のいずれか1項に記載のコード変換装置。
  7. 7
    前記変換部は、前記第1コードに含まれるループ内における各配列の出現回数、又は前記ループ内で同じ添え字を有する配列のグループにおける各配列の出現回数のうち、少なくとも一方に基づいて、前記ループに含まれる配列の中から前記複数の配列を選択することを特徴とする請求項1乃至6のいずれか1項に記載のコード変換装置。
  8. 8
    前記第1コードに含まれる複数の配列のデータ定義は、配列構造体のデータ定義であることを特徴とする請求項1乃至7のいずれか1項に記載のコード変換装置。
  9. 9
    複数の配列のデータ定義と、前記複数の配列に対する所定の演算と、前記所定の演算の演算結果を表す配列のデータ定義とを含む、第1コードを記憶する記憶部を有するコンピュータが、前記第1コードに含まれる前記複数の配列のデータ定義と前記演算結果を表す配列のデータ定義とを、構造体配列のデータ定義に変換し、前記第1コードに含まれる前記所定の演算を、前記構造体配列に対する演算に変換し、前記複数の配列各々の異なるデータに対して、前記構造体配列に対する演算を並列に実行する所定の命令を含む、第2コードを生成することを特徴とするコード変換方法。
  10. 10
    複数の配列のデータ定義と、前記複数の配列に対する所定の演算と、前記所定の演算の演算結果を表す配列のデータ定義とを含む、第1コードを記憶する記憶部を有するコンピュータに、前記第1コードに含まれる前記複数の配列のデータ定義と前記演算結果を表す配列のデータ定義とを、構造体配列のデータ定義に変換させ、前記第1コードに含まれる前記所定の演算を、前記構造体配列に対する演算に変換させ、前記複数の配列各々の異なるデータに対して、前記構造体配列に対する演算を並列に実行する所定の命令を含む、第2コードを生成させることを特徴とするコード変換プログラム。
Independent claims10