register allocator
Recently Published Documents


TOTAL DOCUMENTS

14
(FIVE YEARS 1)

H-INDEX

6
(FIVE YEARS 1)

2020 ◽  
Vol 64 (7) ◽  
pp. 1287-1306 ◽  
Author(s):  
Oskar Abrahamsson ◽  
Son Ho ◽  
Hrutvik Kanabar ◽  
Ramana Kumar ◽  
Magnus O. Myreen ◽  
...  

Abstract We introduce an automatic method for producing stateful ML programs together with proofs of correctness from monadic functions in HOL. Our mechanism supports references, exceptions, and I/O operations, and can generate functions manipulating local state, which can then be encapsulated for use in a pure context. We apply this approach to several non-trivial examples, including the instruction encoder and register allocator of the otherwise pure CakeML compiler, which now benefits from better runtime performance. This development has been carried out in the HOL4 theorem prover.


2006 ◽  
Vol 41 (6) ◽  
pp. 204-215 ◽  
Author(s):  
David Ryan Koes ◽  
Seth Copen Goldstein
Keyword(s):  

2004 ◽  
Vol 14 (02) ◽  
pp. 287-313 ◽  
Author(s):  
Sid-Ahmed-Ali TOUATI ◽  
Christine EISENBEIS

Register allocation in loops is generally performed after or during the software pipelining process. This is because doing a conventional register allocation as a first step without assuming a schedule lacks the information of interferences between values live ranges. Thus, the register allocator may introduce an excessive amount of false dependences that dramatically reduce the ILP (Instruction Level Parallelism). We present a new theoretical framework for controlling the register pressure before software pipelining. Thus is based on inserting some anti-dependence edges (register reuse edges) labeled with reuse distances, directly on the data dependence graph. In this new graph, we are able to fix the register pressure, measured as the number of simultaneously alive variables in any schedule. The determination of register and distance reuse is parameterized by the desired minimum initiation interval (MII) as well as by the register pressure constraints - either can be minimized while the other one is fixed. After scheduling, register allocation is done on conventional register sets or on rotating register files. We give an optimal exact model, and an approximation that generalizes the Ning-Gao [22] buffer optimization method. We provide experimental results which show good improvement compared to [22]. Our theoretical model considers superscalar, VLIW and EPIC/IA64 processors.


Sign in / Sign up

Export Citation Format

Share Document