JP2002527816A5 - - Google Patents

Download PDF

Info

Publication number
JP2002527816A5
JP2002527816A5 JP2000576362A JP2000576362A JP2002527816A5 JP 2002527816 A5 JP2002527816 A5 JP 2002527816A5 JP 2000576362 A JP2000576362 A JP 2000576362A JP 2000576362 A JP2000576362 A JP 2000576362A JP 2002527816 A5 JP2002527816 A5 JP 2002527816A5
Authority
JP
Japan
Prior art keywords
vector
sese
program
instruction
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
JP2000576362A
Other languages
English (en)
Other versions
JP2002527816A (ja
Filing date
Publication date
Application filed filed Critical
Priority claimed from PCT/RU1998/000326 external-priority patent/WO2000022523A1/en
Publication of JP2002527816A publication Critical patent/JP2002527816A/ja
Publication of JP2002527816A5 publication Critical patent/JP2002527816A5/ja
Pending legal-status Critical Current

Links

Description

【特許請求の範囲】
【請求項1】 リソースにアクセスする命令を有するプログラムを最適化する方法であって
前記命令による前記リソースの使用状態を示す、前記命令のローカル・ベクトルを判定するステップであって、前記ローカル・ベクトルは、第1部分ベクトルおよび第2部分ベクトルとして与えられる、前記命令のローカル・ベクトルを判定するステップと、
チャイルド・ペアレント・プログラム階層におけるSESE (S ingle-Entry-Single-Exit)構造に関する前記プログラムをスキャンするステップと、
反復的に、前記階層を昇り、前記ローカル・ベクトルからSESEベクトルを判定するステップとを備え、前記SESEベクトルは前記SESE構造による前記リソースの使用状態を示し、前記SESEベクトルは、
(a)前記第1部分ベクトルを加算し、前記第2部分ベクトルを減算し、第1グローバル・サクセッサ・ベクトルを加算することによって、第1グローバル・ベクトルとして、および
(b)前記第2部分ベクトルを加算し、前記第1部分ベクトルを減算し、第2グローバル・サクセッサ・ベクトルを加算することにより、第2グローバル・ベクトルとして、
反復的に与えられる、リソースにアクセスする命令を有するプログラムを最適化する方法。
【請求項2】 請求項1記載の方法であって
冗長リソースとして前記SESEベクトルによって特定されるリソースを削除することにより、前記プログラムを修正するステップと、
修正されたSESE構造についてのみ、新規SESEベクトルを判定するステップとをさらに備える請求項1記載の方法。
【請求項3】 複数のサクセッサとして生じるサクセッサについて、SESEベクトルを判定する前記ステップは、
(a)命令の前記第1グローバル・ベクトルは、前記複数のサクセッサの第1グローバル・ベクトルの合成(combination)によって与えられ、および
(b)命令の前記第2グローバル・ベクトルは、前記複数のサクセッサの第2グローバル・ベクトルの交差(intersection)によって与えられる、請求項1記載の方法。
【請求項4】 SESEベクトルを判定する前記ステップにおいて、SESE境界におけるローカル・ベクトルは、最初に基準ベクトルと比較される請求項1記載の方法。
【請求項5】 前記基準ベクトルはゼロ・ベクトルである請求項4記載の方法。
【請求項6】 第1SESEにおいて変数を評価するステップであって
(a)前記変数を考慮する、前記第1SESEにおいてSESEベクトルを与えるサブステップと、
(b)前記第1SESEに続く、SESEのSESEベクトルを与えるサブステップと、(c)サブステップ(b)にて得られた最後のSESEベクトルにおいて変数がセットされているかどうかを調べるサブステップと、
を有する第1SESEにおいて変数を評価するステップをさらに備える請求項1記載の方法。
【請求項7】 プログラムを解析する方法であって
(a)前記プログラムの基本ブロック内のライブ情報をシングル・フォーワード・トラバースを用いて計算するステップと、
(b)反復的なバックワード・トラバースを用いて、前記基本ブロックのライブ情報から、SESE (Single-Entry-Single-Exit)構造内のライブ情報を評価するステップと、
(c)前記SESE構造のライブ情報から、前記プログラムのライブ情報を取得するステップとを備える、プログラムを解析するための方法。
【請求項8】 使用済みリソース用の第1ベクトルと、使用されなくなったリソース用の第2ベクトルとにおいて、ライブ情報が与えられることを特徴とする請求項記載の方法。
【請求項9】 プログラムにおけるリソース・ベクトルを評価する方法であって
(a)基準ベクトルから開始する反復によりSESE内で前記プログラムのSESEを解析し、SESEベクトルを与えるステップと、
(b)ステップ(a)のSESEベクトルを利用して、前記プログラムを解析して、前記リソース・ベクトルを与えるステップと
によって、プログラムにおけるリソース・ベクトルを評価する方法。
【請求項10】 前記ステップ(a)において、反復は、SESEベクトルがそれ以上変化しないときに停止されることを特徴とする請求項記載の方法。
【請求項11】 前記基準ベクトルは、ゼロ・ベクトルである請求項9記載の方法。
【請求項12】 プログラムのリソースをベクトル解析する方法であって、
プログラム・フローは
(a)分岐命令において分割し、
(b)マージ命令においてマージし、および
(c)リニア命令において変化しないものであり
前記方法は
それぞれが一つのフロー・エントリおよび一つのフロー・エグジットを有する命令のグループを確立するステップと、
各グループにおいて、
(a)一時点において分岐命令の命令ベクトルを、サクセッサ命令の2つまたはそれ以上のベクトルに関連付け、
(b)別の時点においてマージ命令の命令ベクトルをそのプレデセサ命令のベクトルに関連付け、および
(c)リニア命令のベクトルをそのサクセッサ命令のベクトルに関連付けることを選択的に行うことによって、前記グループのベクトルを与えるステップであって、サクセッサ命令およびプレデセサ命令の任意の前記ベクトルは、前記サクセッサ命令またはプレデセサ命令が前記グループに属さない場合に、基準ベクトルに設定される、前記グループのベクトルを与えるステップと、
前記グループ・ベクトルをプログラム・ベクトルに合成するステップとを備える、プログラムのリソースのベクトル解析方法。
【請求項13】 グループ修正をさらに含んで構成される請求項12記載の方法であって、ベクトルを与える前記ステップは、修正されたグループについてのみ反復される、請求項12記載の方法。
【請求項14】 プログラム・オプティマイザであって
最適化されるプログラムを格納し、かつ最適化ソフトウェアを格納するメモリと、
前記最適化ソフトウェアからコマンドを受けるプロセッサと、
該プロセッサは、
(a)前記プログラムの命令におけるベクトルを判定して、前記命令によるリソースの使用を示し
(b)SESE(Single-Entry-Single-Exit)構造について前記プログラムをスキャンしおよび
(c)前記ローカル・ベクトルから、前記SESE構造による前記リソースの使用を示すSESEベクトルを判定し、該SESEベクトルは、
(a)前記第1部分ベクトルを加算し、前記第2部分ベクトルを減算し、第1グローバル・サクセッサ・ベクトルを加算することによって、第1グローバル・ベクトルとして、および
(b)前記第2部分ベクトルを加算し、前記第1部分ベクトルを減算し、第2グローバル・サクセッサ・ベクトルを加算することにより、第2グローバル・ベクトルとして、
反復的に与えられる、リソースにアクセスする命令を有するプログラムを最適化することとを備える、プログラム・オプティマイザ。
JP2000576362A 1998-10-13 1998-10-13 プログラム最適化装置および方法 Pending JP2002527816A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU1998/000326 WO2000022523A1 (en) 1998-10-13 1998-10-13 Apparatus and method for program optimizing

Publications (2)

Publication Number Publication Date
JP2002527816A JP2002527816A (ja) 2002-08-27
JP2002527816A5 true JP2002527816A5 (ja) 2006-01-05

Family

ID=20130274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000576362A Pending JP2002527816A (ja) 1998-10-13 1998-10-13 プログラム最適化装置および方法

Country Status (4)

Country Link
US (1) US6571386B1 (ja)
EP (1) EP1121641A1 (ja)
JP (1) JP2002527816A (ja)
WO (1) WO2000022523A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754892B1 (en) * 1999-12-15 2004-06-22 Transmeta Corporation Instruction packing for an advanced microprocessor
US7562350B2 (en) * 2000-12-15 2009-07-14 Ricoh Company, Ltd. Processing system and method using recomposable software
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7606997B1 (en) 2003-07-18 2009-10-20 Guillermo Rozas Method and system for using one or more address bits and an instruction to increase an instruction set
US8762949B2 (en) * 2005-05-31 2014-06-24 Alcatel Lucent Method and apparatus for incremental analysis of one or more properties of a program
US7571301B2 (en) * 2006-03-31 2009-08-04 Intel Corporation Fast lock-free post-wait synchronization for exploiting parallelism on multi-core processors
EP2071457A1 (en) * 2007-12-13 2009-06-17 Alcatel Lucent Device and method for automatically optimizing composite applications having orchestrated activities
US8176299B2 (en) * 2008-09-24 2012-05-08 Apple Inc. Generating stop indicators based on conditional data dependency in vector processors
US8181001B2 (en) * 2008-09-24 2012-05-15 Apple Inc. Conditional data-dependency resolution in vector processors
US9715386B2 (en) 2014-09-29 2017-07-25 Apple Inc. Conditional stop instruction with accurate dependency detection

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107418A (en) * 1990-06-11 1992-04-21 Supercomputer Systems Limited Partnership Method for representing scalar data dependences for an optimizing compiler
US5854934A (en) * 1996-08-23 1998-12-29 Hewlett-Packard Company Optimizing compiler having data cache prefetch spreading
US5966537A (en) * 1997-05-28 1999-10-12 Sun Microsystems, Inc. Method and apparatus for dynamically optimizing an executable computer program using input data
US6175957B1 (en) * 1997-12-09 2001-01-16 International Business Machines Corporation Method of, system for, and computer program product for providing efficient utilization of memory hierarchy through code restructuring

Similar Documents

Publication Publication Date Title
US8234625B2 (en) Optimized look-up table calculations in block diagram software
US5146594A (en) Method of producing object program based on interprocedural dataflow analysis of a source program
US7496894B2 (en) Methods for enhancing pointer analyses
US7315844B2 (en) System, method and program to estimate cost of a product and/or service
Krogmann Reconstruction of software component architectures and behaviour models using static and dynamic analysis
JP2002116916A (ja) プログラムの最適化方法及びこれを用いたコンパイラ
US5396627A (en) Method of producing object program based on interprocedural dataflow analysis of a source program
JP2002527816A5 (ja)
JP3047998B2 (ja) 並列計算機におけるプロセッサ割り当て方法、及び装置
US5797012A (en) Connectivity based program partitioning
JP3765923B2 (ja) ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体
US7734559B2 (en) Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice
Basten et al. QTL Cartographer, version 1.17
CN114238078A (zh) 一种基于高阶函数的程序间依赖关系抽取方法
JP2002527816A (ja) プログラム最適化装置および方法
Peyret et al. Efficient application mapping on CGRAs based on backward simultaneous scheduling/binding and dynamic graph transformations
Khedker et al. Bidirectional data flow analysis for type inferencing
Lyon et al. A scalability test for parallel code
Dolz et al. Towards automatic parallelization of stream processing applications
JP3166699B2 (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
Gebremedhin et al. Automatic task based analysis and parallelization in the context of equation based languages
JPH0667871A (ja) プログラム自動更新方式
KR100319776B1 (ko) 소프트웨어 프로세스 모형화 장치 및 그 방법
JPH03186945A (ja) プログラム実行特性の測定方法
JPH05334391A (ja) 制御回路生成装置