实验指导 step13:寄存器分配算法改进

step13 的目标是实现论文 TOPLAS'1996: Iterated Register Coalescing 提出的寄存器分配算法,并以此代替 step5 中提到的当前代码框架中的分配算法

语法上没有改动。

我们只接受 pdf 格式的实验报告,你需要将报告放在仓库的 ./reports/<branch-name>.pdf,比如 stage 7 的实验报告需要放在 stage-7 这个 branch 下的 ./reports/stage-7.pdf。整个 stage 7 只需要提交一份报告。

你需要:

  1. 改进你的编译器,支持上面提到的寄存器分配算法。
    • 除了替换位于 backend/reg/bruteregalloc.py 的分配算法外,你可能还需要修改其他文件以适配算法的需求。如果你忘了这部分内容,可以看看 step 6 的数据流分析一节
    • 你需要为代码添加合理的注释以便批阅。
    • 你需要设计新测例(见本节实验指导),用以检测新分配算法的优化效果。
  2. 完成实验报告(具体要求请看实验指导书的首页)。实验报告中需要包括:
    • 你的学号姓名
    • 简要叙述,为了完成这个 stage 你做了哪些工作(即你的实验内容)
    • 详细说明你的代码的运行逻辑
    • 举例说明:对于某几个测例,你在本节实验之前的代码编译出什么?本节实验之后编译出什么?它是如何被优化的?
    • 对于本节实验的新测例,分别使用本节实验之前之后的代码进行编译,测量并统计运行时间。改进后的编译器编译出的代码的运行效率需要有显著提升,但效率提升的高低不会作为评分的考察点。
    • 如果你复用借鉴了参考代码或其他资源,请明确写出你借鉴了哪些内容。并且,即使你声明了代码借鉴,你也需要自己独立认真完成实验。
    • 如有代码交给其他同学参考,也必须在报告中声明,告知给哪些同学拷贝过代码(包括可能通过间接渠道传播给其他同学)。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""