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 optimizations that are otherwise difficult to apply in order to aggressively extract a parallelism from a program. Since the code in SSA form cannot be executed directly on the existing target architecture, a translation out of the predicated SSA form must be performed, and this translation is not trivial. We propose an algorithm to translate out of predicated SSA form.
منابع مشابه
Translating Out of Static Single Assignment Form
Programs represented in Static Single Assignment (SSA) form contain phi instructions (or functions) whose operational semantics are to merge values coming from distinct control flow paths. However, translating phi instructions into native instructions is nontrivial when transformations such as copy propagation and code motion have been performed. In this paper we present a new framework for tra...
متن کاملOptimizing Storage Size for Static Control Programs in Automatic Parallelizers
This article deals with automatic parallelization of static control programs. During the parallelization process the removal of arti-cial dependences is usually realized by translating the original program into a single assignment form. This total data expansion has a very high memory cost. We present a technique of partial data expansion which leaves untouched the performances of the paralleli...
متن کاملConstant Propagation on Predicated Code
We present a new constant propagation (CP) algorithm for predicated code, for which classical CP-techniques are inadequate. The new algorithm works for arbitrary control flow, detects constancy of terms, whose operands are not constant themselves, and is optimal for acyclic code such as hyperblocks, the central “compilation units” for instruction scheduling of predicated code. The new algorithm...
متن کامل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...
متن کاملSea Cucumber: A Synthesizing Compiler for FPGAs
Sea Cucumber (SC) is a synthesizing compiler for FPGAs that accepts Java class files as input (generated from Java source files) and that generates circuits that exploit the coarseand fine-grained parallelism available in the input class files. Programmers determine the level of coarse-grained parallelism available by organizing their circuit as a set of inter-communicating, concurrent threads ...
متن کامل