Cooper, Keith D.2009-06-042009-06-042005Eckhardt, Jason. "Global register allocation using program structure." (2005) Master’s Thesis, Rice University. <a href="https://hdl.handle.net/1911/17773">https://hdl.handle.net/1911/17773</a>.https://hdl.handle.net/1911/17773The Chaitin-Briggs approach to register allocation by graph coloring is the dominant method used in industrial and research compilers. It usually produces highly-efficient allocations, but sometimes exhibits pathological spilling behavior so that some programs execute significantly more spill operations than is necessary. This thesis examines and improves two previously proposed approaches of attacking this problem. Passive splitting attempts a lazy form of live range splitting which can substantially reduce dynamic spill count compared to Chaitin-Briggs. We incorporate program structure into the passive splitting framework to better guide splitting decisions and to place splits at infrequently executed regions of code. Also investigated is the Hierarchical Graph Coloring approach, which uses program structure during allocation. We provide an empirical evaluation of this poorly-understood algorithm, and propose some improvements.67 p.application/pdfengCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.Computer scienceGlobal register allocation using program structureThesisTHESIS COMP.SCI. 2005 ECKHARDT