Filters








225 Hits in 10.3 sec

Register Allocation and Optimal Spill Code Scheduling in Software Pipelined Loops Using 0-1 Integer Linear Programming Formulation [chapter]

Santosh G. Nagarakatte, R. Govindarajan
Lecture Notes in Computer Science  
We model the problem of register allocation with spill code generation and scheduling in software pipelined loops as a 0-1 integer linear program.  ...  To the best of our knowledge, this is the first integrated formulation for register allocation, optimal spill code generation and scheduling for software pipelined loops.  ...  Acknowledgments The authors are thankful to the members of the High Performance Computing Laboratory for their useful comments and discussions.  ... 
doi:10.1007/978-3-540-71229-9_9 dblp:conf/cc/NagarakatteG07 fatcat:5ja6j6uyzvdj7m5x2ktrxjp6rm

Integrated Code Generation for Loops

Mattias Eriksson, Christoph Kessler
2012 ACM Transactions on Embedded Computing Systems  
To study this we have formulated optimal methods for code generation with integer linear programming; first for acyclic code and then we extend this method to modulo scheduling of loops.  ...  Code generation in a compiler is commonly divided into several phases: instruction selection, scheduling, register allocation, spill code generation, and, in the case of clustered architectures, cluster  ...  ACKNOWLEDGMENTS We thank Sid-Ahmed-Ali Touati for reading and commenting on an earlier version of this paper, and for providing the data dependence graphs used in the modulo scheduling evaluation.  ... 
doi:10.1145/2180887.2180896 fatcat:knfgraowcvfajnvdi2ldfzqi2e

Efficient Spilling Reduction for Software Pipelined Loops in Presence of Multiple Register Types in Embedded VLIW Processors

Sid-Ahmed-Ali Touati, Frederic Brault, Karine Deschinkel, Benoît Dupont de Dinechin
2011 ACM Transactions on Embedded Computing Systems  
allocation and software pipelining of loops is an active research area.  ...  We focus on techniques that precondition the dependence graph before software pipelining in order to ensure that no register spill instructions are inserted by the register allocator in the software pipelined  ...  With the increase of loop code size of media processing applications, methods that formulate software pipelining under both register pressure and resource constraints as integer linear programming problems  ... 
doi:10.1145/2043662.2043671 fatcat:jeh7wpk74rhknbzfvtruillmji

Survey on Combinatorial Register Allocation and Instruction Scheduling [article]

Roberto Castañeda Lozano, Christian Schulte
2019 arXiv   pre-print
are most applied in this context: integer programming, constraint programming, partitioned Boolean quadratic programming, and enumeration.  ...  This paper provides an exhaustive literature review and a classification of combinatorial optimization approaches to register allocation and instruction scheduling, with a focus on the techniques that  ...  This work has been partially funded by Ericsson AB and the Swedish Research Council (VR) under grant 621-2011-6229.  ... 
arXiv:1409.7628v3 fatcat:ebbnooyzgbdvnaaqvtzpth7igi

Survey on Combinatorial Register Allocation and Instruction Scheduling

Roberto Castañeda Lozano, Christian Schulte
2019 ACM Computing Surveys  
are most applied in this context: integer programming, constraint programming, partitioned Boolean quadratic programming, and enumeration.  ...  Sweden CHRISTIAN SCHULTE, KTH Royal Institute of Technology, Sweden and RISE SICS, Sweden Register allocation (mapping variables to processor registers or memory) and instruction scheduling (reordering  ...  This work has been partially funded by Ericsson AB and the Swedish Research Council (VR) under grant 621-2011-6229.  ... 
doi:10.1145/3200920 fatcat:kb7z453cmjhbzjdxev6qmitqee

Periodic register saturation in innermost loops

Sid-Ahmed-Ali Touati, Zsolt Mathe
2009 Parallel Computing  
It extends the register saturation (RS) concept to periodic instruction schedules, i.e., software pipelining (SWP).  ...  Third, it can be used to verify prior to instruction scheduling that a code does not require spilling.  ...  This research result would not succeed without the valuable support of the University of Versailles Saint-Quentin en Yvelines, INRIA-Rocquencourt and INRIA-Saclay in France.  ... 
doi:10.1016/j.parco.2008.12.001 fatcat:brbfjekj4jgdxksqcvkhc7h7vi

Optimal and Heuristic Global Code Motion for Minimal Spilling [chapter]

Gergö Barany, Andreas Krall
2013 Lecture Notes in Computer Science  
We evaluate solutions of this optimization problem using integer linear programming, where feasible, and a simple greedy heuristic.  ...  Using this information, we formulate an optimization problem to determine code motions and partial local schedules that minimize the overall cost of live range overlaps.  ...  We describe both heuristic GCMS and an integer linear programming formulation for an optimal solution of the problem.  ... 
doi:10.1007/978-3-642-37051-9_2 fatcat:e7shltqv2fc2lgv3dnvyt6p6ui

A Tiling Perspective for Register Optimization [article]

Lukasz Domagala, Fabrice Rastello, Sadayappan Ponnuswany, Duco Van Amstel (INRIA Grenoble Rhône-Alpes)
2014 arXiv   pre-print
In this paper, we develop an approach to register allocation and promotion in a unified optimization framework that simultaneously considers the impact of loop unrolling and instruction scheduling.  ...  A particularly important context for optimizing register allocation is within loops, since a significant fraction of the execution time of programs is often inside loop code.  ...  Given an instruction schedule, good heuristics [17, 10] or "optimal" formulations [1, 11] have been developed for register allocation to minimize spills.  ... 
arXiv:1406.0582v1 fatcat:o7ezt7k2vfb3fgj26fdueyrfai

Early Control of Register Pressure for Software Pipelined Loops [chapter]

Touati Sid-Ahmed-Ali, Christine Eisenbeis
2003 Lecture Notes in Computer Science  
The register allocation in loops is generally performed after or during the software pipelining process.  ...  We present a new framework for controlling the register pressure before software pipelining.  ...  The problem of cyclic register allocation is described in Sect. 4 and formulated with integer linear programming (intLP).  ... 
doi:10.1007/3-540-36579-6_2 fatcat:uuxuoyjk4recxaboxndm6wmyz4

Early Periodic Register Allocation on ILP Processors

Sid-Ahmed-Ali TOUATI, Christine EISENBEIS
2004 Parallel Processing Letters  
Register allocation in loops is generally performed after or during the software pipelining process.  ...  We present a new theoretical framework for controlling the register pressure before software pipelining.  ...  The problem of periodic register allocation is described in Sect. 4 and formulated with integer linear programming (intLP).  ... 
doi:10.1142/s012962640400188x fatcat:6glu4jl4b5bwliskv36en2mswa

A framework for resource-constrained rate-optimal software pipelining [chapter]

R. Govindarajan, Erik R. Altman, Guang R. Gao
1994 Lecture Notes in Computer Science  
Index Terms-Instruction-level parallelism, instruction scheduling, integer linear programming, software pipelining, superscalar and VLlW architectures. [13], [14] .  ...  software pipelined loop schedules.  ...  He has authored or coauthored more than 100 technical papers on the topics of computer architecture, parallelizing compilers, code optimization, parallel processing, data-flow, and multithreaded program  ... 
doi:10.1007/3-540-58430-7_56 fatcat:bexyho4fe5fz3ilacwrl6akexi

Minimal Unroll Factor for Code Generation of Software Pipelining

Mounira Bachir, Sid-Ahmed-Ali Touati, Frederic Brault, David Gregg, Albert Cohen
2012 International journal of parallel programming  
by inserting register moves, which increase the number of operations in the loop, and may damage the schedule of the software pipeline and reduce throughput; (3) post-pass loop unrolling that does not  ...  which may result in register spills [10] .  ...  We are also grateful to the reviewers of earlier versions of this paper who greatly contributed to the improvement of its quality and readability.  ... 
doi:10.1007/s10766-012-0203-z fatcat:epdoafilajdkrgrajjhrybaroy

A framework for resource-constrained rate-optimal software pipelining

R. Govindarajan, E.R. Altman, G.R. Gao
1996 IEEE Transactions on Parallel and Distributed Systems  
The rapid advances in high-performance computer architecture and compilation techniques provide both challenges and opportunities to exploit the rich solution space of software pipelined loop schedules  ...  The techniques proposed in this paper are useful in two different ways: 1) As a compiler option which can be used in generating faster schedules for performance-critical loops (if the interested users  ...  In their method register allocation is performed on already scheduled loops. Different code generation schema for modulo scheduled loops have been discussed in 1361.  ... 
doi:10.1109/71.544355 fatcat:mnodafcp5vcj7hjwq2fcye5acm

A Dynamic Programming Approach to Optimal Integrated Code Generation

Christoph Keßler, Andrzej Bednarski
2001 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems - OM '01  
In that case, the generation of efficient code requires the simultaneous solution of the main subproblems instruction selection, instruction scheduling, and register allocation, as an integrated optimization  ...  Today, most approaches to optimal code generation are based on integer linear programming, but these are either not integrated or not able to produce optimal solutions except for very small problem instances  ...  Optimal approaches Integer linear programming. ILP-based methods are widely used today in code generation.  ... 
doi:10.1145/384198.384219 fatcat:4cnkpfpm6ne7bfwnofxbkus6qm

A Dynamic Programming Approach to Optimal Integrated Code Generation

Christoph Keßler, Andrzej Bednarski
2001 Proceedings of the ACM SIGPLAN workshop on Languages, compilers and tools for embedded systems - LCTES '01  
In that case, the generation of efficient code requires the simultaneous solution of the main subproblems instruction selection, instruction scheduling, and register allocation, as an integrated optimization  ...  Today, most approaches to optimal code generation are based on integer linear programming, but these are either not integrated or not able to produce optimal solutions except for very small problem instances  ...  Optimal approaches Integer linear programming. ILP-based methods are widely used today in code generation.  ... 
doi:10.1145/384197.384219 dblp:conf/lctrts/KesslerB01 fatcat:ueiszu5rc5am3h2ouuxirzejca
« Previous Showing results 1 — 15 out of 225 results