Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2016, Volume 28, Issue 5, Pages 199–214
DOI: https://doi.org/10.15514/ISPRAS-2016-28(5)-12
(Mi tisp76)
 

Global register allocation during dynamic binary translation

K. A. Batuzov

Institute for System Programming of the Russian Academy of Sciences
References:
Abstract: Register allocation have a significant impact on performance of generated code. This paper explores the problem of global register alloction during dynamic binary translation. Since existing algorithms are designed for compilers and they are not always suitable for dynamic binary translation, a new global register allocation was developed. This algorithm decides which variables should reside on which registers before and after each basic block (called pre- and post- conditons of this basic block) and solves local register allocation problem in these constraints. To ensure that pre- and post- conditions of different basic blocks are consistent the algorithms must choose these conditions in such a way that for each basic block b' that precides arbitrary block b it's postconditions are the same as preconditions of b . This can be achieved by finding groups of arcs in control flow graph on which these conditions should remain the same (let's call them synchronisation points) and then choosing conditions for each such synchronisation point. Synchronization points are connected components in graph G<sub>E </sub>which is a graph where arcs of original CFG are vertices and edges connect arcs which start or end in the same basic block. This gives an efficient way to find synchronization points. To choose which variables should reside on registers in each synchronization point the amount of available register is estimated using register pressure in incident basic blocks. Then actual variables a picked based on how often they are used in incident basic blocks. Finally the local register allocation algorithm is modified to use precondition and ensure post conditions of the basic block. The efficient algorithm to convert existing allocation to the desired postcondition at the end of basick block is presented with the proof of that it's optimal in terms of generated spills, reloads and register moves. The described algorithm showed 29.6% running time decrease on the synthetic example. The needed modifications of the algorithm to efficiently run on real life application are explored.
Keywords: global register allocation, dynamic binary translation, QEMU.
Bibliographic databases:
Document Type: Article
Language: Russian
Citation: K. A. Batuzov, “Global register allocation during dynamic binary translation”, Proceedings of ISP RAS, 28:5 (2016), 199–214
Citation in format AMSBIB
\Bibitem{Bat16}
\by K.~A.~Batuzov
\paper Global register allocation during dynamic binary translation
\jour Proceedings of ISP RAS
\yr 2016
\vol 28
\issue 5
\pages 199--214
\mathnet{http://mi.mathnet.ru/tisp76}
\crossref{https://doi.org/10.15514/ISPRAS-2016-28(5)-12}
\elib{https://elibrary.ru/item.asp?id=27679160}
Linking options:
  • https://www.mathnet.ru/eng/tisp76
  • https://www.mathnet.ru/eng/tisp/v28/i5/p199
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:161
    Full-text PDF :84
    References:40
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024