后端学习 List-Schedule
前言
最近几天学习其实非常用功,恶补理论知识,但果然还是,很多东西,了解的越深入越是不懂;
在这里记录一下指令排序的学习,list-schedule相关的知识第一次分享是从薅然的分享来的,当时模糊的感觉自己听懂了一些,如今没想到轮到自己要来讲一遍了。
List Schedule
指令排序,Schedule,是一个重要的pass在编译器的后端,
一般而言schedule会在寄存器分配之前进行一次,然后在寄存器分配之后再进行一次;
第一次也就是pre,第二次是post,做两次的原因在于第一次排序由于是无限寄存器(SSA?)所以可以专心于提高并发度,而第二次由于寄存器分配完毕,指令数已经确定了,再做一次。
schedule的种类
应该有两种,一种是bottom-up,一种是bottom-down;
但是从网上资料寻找来看,bottom-down的是最常见的;bottom-up反而更像是只在提及中存在;
本文也将记录list-schedule bottom-down这一算法的学习流程;

浙公网安备 33010602011771号