Comparison and Evaluation of Back Translation Algorithms for Static Single Assignment Form
نویسندگان
چکیده
SSA 形式 (静的単一代入形式) は,φ 関数という仮想的な関数を用いることで,変数の定義を字面 上一ヶ所だけになるように表した中間表現である.しかし,SSA形式を用いたプログラム中に現れる φ関数が仮想的であることから,SSA形式から直接目的コードを出すことはできない.そこで,目的 コードを出す前段階として,φ 関数を消去して通常形式に戻すことが必要である.これを SSA 逆変 換と呼ぶ. SSA 逆変換には主なアルゴリズムが 2 つある.以前から用いられている Briggs らのアルゴリズ ム,およびこれとは異なるアプローチによる Sreedharらのアルゴリズムである.SSA逆変換アルゴ リズムはそれぞれ異なった特徴を持つが,これらを実際に比較した研究はほとんどなされていない. このため,SSA 形式を最適化コンパイラに採用するにあたって,どの SSA 逆変換を用いるかの選択 の指標となるものがなかった. そこで本研究では,Briggs らと Sreedhar らのアルゴリズムの長所と短所を明確にした.また, Briggs らのアルゴリズムに対する改良案を提案した.さらに,Briggs らのアルゴリズムとその改良 案,Sreedhar らのアルゴリズムの3つを実装し,同一のコンパイラ上で,SPEC ベンチマークを用 いて種々の条件を変えながら比較した. 本研究により,Briggsらの方法ではコアレッシングすることのできないコピー文が数多く挿入され ること,改良案は若干ながら効果があること,実証的には Sreedhar らの方法がもっとも優れている こと,が判明した.
منابع مشابه
Comparison and evaluation of back-translation algorithms for static single assignment forms
The static single assignment form (SSA form) is a popular intermediate representation in compilers. In the SSA form, the definition of each variable textually appears only once in the program by using a hypothetical function called a -function. Because these functions are nonexecutable, it is necessary to delete the -functions and return the SSA form to the normal form before code generation. T...
متن کاملOptimizing the translation out-of-SSA with renaming constraints
Static Single Assignment form is an intermediate representation, that uses -functions to merge values at each confluent points of the control flow graph. functions are not machine instructions and should be renamed back to move operations when translating out-of-SSA form. Without a coalescing algorithm, out-of-SSA translation generates many move instructions. In this paper we propose an extensi...
متن کاملTranslating Out of Predicated Static Single Assignment Form
Static Single Assignment (SSA) form is an intermediate representation that allows a compiler to perform advanced optimizations to extract parallelism. Predication is an architectural feature to maximize instruction level parallelism. If a compiler uses a predicated SSA form that is a combination of an SSA form and predication as an intermediate representation, it can perform advance optimizatio...
متن کاملIncremental Computation of Static Single Assignment Form
Abs t r ac t . Static single assignment (SSA) form is an intermediate representation that is well suited for solving many data flow optimization problems. However, since the standard algorithm for building SSA form is exhaustive, maintaining correct SSA form throughout a multi-pass compilation process can be expensive. In this paper, we present incremental algorithms for restoring correct SSA f...
متن کاملOptimizing Code Generation from SSA Form: A Comparison Between Two Formal Correctness Proofs in Isabelle/HOL
Correctness of compilers is a vital precondition for the correctness of the software translated by them. In this paper, we present two approaches for the formalization of static single assignment (SSA) form together with two corresponding formal proofs in the Isabelle/HOL system, each showing the correctness of code generation. Our comparison between the two proofs shows that it is very importa...
متن کاملDifferent Network Performance Measures in a Multi-Objective Traffic Assignment Problem
Traffic assignment algorithms are used to determine possible use of paths between origin-destination pairs and predict traffic flow in network links. One of the main deficiencies of ordinary traffic assignment methods is that in most of them one measure (mostly travel time) is usually included in objective function and other effective performance measures in traffic assignment are not considere...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004