特許
J-GLOBAL ID:200903059536237178
計算機言語処理方法
発明者:
出願人/特許権者:
代理人 (1件):
小笠原 吉義 (外2名)
公報種別:公開公報
出願番号(国際出願番号):特願平4-061984
公開番号(公開出願番号):特開平5-265770
出願日: 1992年03月18日
公開日(公表日): 1993年10月15日
要約:
【要約】【目的】本発明は,階層型メモリを有する計算機上で動作するプログラム10について,オブジェクトプログラム15への翻訳時に最適化処理を行う計算機言語処理方法に関し,多重ループ中のデータを高速にアクセスすることができる最適化を広範囲に実施し,プログラムの実行性能を向上させることを目的とする。【構成】最適化処理部13において,タイトな構造を持つループを検出し,ブロッキング可能なループを認識する。そして,データの重なり解析を利用することにより,最内ループにおける配列データのアクセス距離が短くなるようにループを入れ換える。次に,ブロッキング可能な候補配列を抽出し,候補配列の中から分割対象配列と分割対象インデックスを決定する。分割後の配列がキャッシュメモリのサイズに収まるように,分割のブロック長を決定し, ループの変形を行う。
請求項(抜粋):
多重ループを含むソースプログラム(10)を,階層型メモリを有する計算機上で動作するオブジェクトプログラム(15)に変換する計算機言語処理方法において,タイトな構造を持つループを検出し,ブロッキング可能なループを認識する処理過程(?@,?A)と,データの重なり解析を利用することにより,インデックス交換が可能なループの範囲を識別し,最内ループにおける配列データのアクセス距離が短くなるように外側ループと最内ループとを入れ換えて,インデックス交換を実施する処理過程(?B)と,ループの深さとインデックスとの関係,最内ループの配列をアクセスするインデックスとループとの関係により,ブロッキング可能な候補配列を抽出し,候補配列の中から分割対象配列と分割対象インデックスを決定する処理過程(?C)と,分割後の配列がキャッシュメモリのサイズに収まるように,キャッシュメモリのサイズおよびループ回転数に基づいて,分割のブロック長を決定する処理過程(?D)と,分割すべき配列データ,分割すべきインデックスおよび分割のブロック長をもとに,分割数を指示するループを元のループの外に生成し,ループの変形を行う処理過程(?E)とを有し,生成するオブジェクトプログラムの最適化処理を行うことを特徴とする計算機言語処理方法。
前のページに戻る