Results 1 -
5 of
5
SSA-based register allocation with PBQP
- Compiler Construction, volume 6601 of Lecture Notes in Computer Science, chapter 4
, 2011
"... Abstract. Recent research shows that maintaining SSA form allows to split register allocation into separate phases: spilling, register assign-ment and copy coalescing. After spilling, register assignment can be done in polynomial time, but copy coalescing is NP-complete. In this pa-per we present an ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
(Show Context)
Abstract. Recent research shows that maintaining SSA form allows to split register allocation into separate phases: spilling, register assign-ment and copy coalescing. After spilling, register assignment can be done in polynomial time, but copy coalescing is NP-complete. In this pa-per we present an assignment approach with integrated copy coalescing, which maps the problem to the Partitioned Boolean Quadratic Problem (PBQP). Compared to the state-of-the-art recoloring approach, this re-duces the relative number of swap and copy instructions for the SPEC CINT2000 benchmark to 99.6 % and 95.2%, respectively, while taking 19 % less time for assignment and coalescing.
An X10 Compiler for Invasive Architectures
"... We study the compilation of X10 to novel, highly scalable hard-ware architectures in the scope of the InvasIC project. To this end, we describe the implementation of a machine code backend and its integration into the existing X10 compiler. In our implementa-tion, the graph-based intermediate repres ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
We study the compilation of X10 to novel, highly scalable hard-ware architectures in the scope of the InvasIC project. To this end, we describe the implementation of a machine code backend and its integration into the existing X10 compiler. In our implementa-tion, the graph-based intermediate representation Firm is used. We identify several issues in the current compiler architecture related to the integration of a low-level backend. The issues and our solu-tions are independent of Firm and apply to all low-level intermedi-ate languages. Furthermore, we propose optimizations for certain X10 language constructs that are possible on invasive hardware ar-chitectures.
Decoupled (SSA-based) Register Allocators: from Theory to Practice, Coping with Just-In-Time Compilation and Embedded Processors Constraints.
, 2013
"... In compilation, register allocation is the optimization that chooses which variables of the source program, in unlimited number, are mapped to the actual registers, in limited number. Parts of the live-ranges of the variables that cannot be mapped to registers are placed in memory. This eviction is ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In compilation, register allocation is the optimization that chooses which variables of the source program, in unlimited number, are mapped to the actual registers, in limited number. Parts of the live-ranges of the variables that cannot be mapped to registers are placed in memory. This eviction is called spilling. Until recently, compilers mainly addressed register allocation via graph coloring using an idea developed by Chaitin et al. [33] in 1981. This approach addresses the spilling and the mapping of the variables to registers in one phase. In 2001, Appel and George [3] proposed to split the register allocation in two separate phases. This idea yields better and independent solutions for both problems, but requires a very aggressive form of live-range splitting, split everywhere, which renames all variables between all instructions of the program. However, in 2005, several groups [27, 84, 56, 16] observed that the static single assignment (SSA) form provides sufficient split points to decouple the register allocation as Appel and George suggested, unless register aliasing or precoloring constraints are involved.
IS
, 2011
"... HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte p ..."
Abstract
- Add to MetaCart
(Show Context)
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et a ̀ la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. appor t de r ech er ch e