GCC寄存器分配的设计与实现

概要
Register Allocation 在编译器后端是个相当重要的阶段,其结果将直接影响最终程式的效能以及大小,而 Register Allocation 在 GCC 中一直是个难以对付的东西,所幸近年来有 Red Hat 的高手将其改善,於 GCC 4.4 时将原本的Local/Global 两阶段 RA,转换為 IRA,并且在 GCC 4.8 时LRA 正式上路,预计将慢慢取代 GCC 中数一数二复杂的Reload,而本报告中从基础的 Graph Coloring-based Register Allocation 的理论介绍,并将其对应回目前GCC IRA/LRA 的实作,一探其运作原理。

个人简介

程皇嘉(Kito Cheng),晶心科技(Andestech)工程师,目前专注于 nds32 CPU 的 GCC,进行效能及程式大小的调校。

HelloGCC工作组由自由软件爱好者于2007年成立,旨在营造一个自由,开放,共享的技术社区,讨论和学习开源工具和开源工具链。我们每年都会举办一次这样的技术讨论会,希望通过自由,开放,共享的方式来增进大家相互的交流。

你可能感兴趣的:(GCC寄存器分配的设计与实现)