Irregular Register Allocation for Translation of Test-pattern Programs
- 30 December 2020
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Architecture and Code Optimization
- Vol. 18 (1), 1-23
- https://doi.org/10.1145/3427378
Abstract
Test-pattern programs are for testing DRAM memory chips. They run on a special embedded system called automated test equipment (ATE). Each ATE manufacturer provides its own programming language, which is mostly low level, thus accessing the registers in the ATE directly. The register structure of each ATE is quite different and highly irregular. Since DRAM chipmakers are often equipped with diverse ATEs from different manufacturers, they employ automatic translation of a program developed for one ATE to a program for different ATEs. This raises an irregular register allocation problem during translation. This article proposes a solution based on partitioned Boolean quadratic programming (PBQP). PBQP has been used for a number of compiler optimizations, including paired register allocation, which our ATE register allocation also requires. Moreover, the interleaved processing in ATE incurs complex register constraints, which we could also formulate elegantly with PBQP. The original PBQP solver is not quite appropriate to use, though, since ATE register allocation does not allow spills, so we devised a more elaborate PBQP solver that trades off the allocation time and allocation search space, to find a solution in a reasonable amount of time. Our experimental results with product-level pattern programs show that the proposed register allocator successfully finds valid solutions in all cases, in the order of tenths of seconds.Keywords
This publication has 19 references indexed in Scilit:
- Optimal Register Allocation in Polynomial TimeLecture Notes in Computer Science, 2013
- Register allocation by puzzle solvingACM SIGPLAN Notices, 2008
- Nearly Optimal Register Allocation with PBQPLecture Notes in Computer Science, 2006
- Mission impossible? Open architecture ATEPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Register allocation for irregular architecturesACM SIGPLAN Notices, 2002
- Linear scan register allocationACM Transactions on Programming Languages and Systems, 1999
- RematerializationACM SIGPLAN Notices, 1992
- Testing Semiconductor Memories: Theory and Practice, A.J. van de Goor, Wiley, 1991. Number of pages: 512. Price: £34.95Quality and Reliability Engineering International, 1992
- Efficiently computing static single assignment form and the control dependence graphACM Transactions on Programming Languages and Systems, 1991
- Register allocation & spilling via graph coloringPublished by Association for Computing Machinery (ACM) ,1982