王向前,王昊
(中国电子科技集团公司 第三十八研究所,合肥 230088)
分簇结构向量寄存器分配策略研究*
王向前,王昊
(中国电子科技集团公司 第三十八研究所,合肥 230088)
通过分簇结构实现向量化执行是一种高效而灵活的体系结构选择。在编译中间表示里,向量指令与标量指令交叠出现。分簇结构向量化实现的特殊方式给传统的寄存器分配框架带来了挑战。针对该问题,本文从向量指令的表示形式、Callee/Caller寄存器划分、向量寄存器分配等进行研究,并给出全局与局部向量寄存器的分配方法。
分簇结构;向量寄存器分配;Callee/Caller
分簇结构[1-2]是一种可以有效增强体系结构并行性而不会引起昂贵硬件代价的体系结构。分簇结构上向量化机制实现较为特殊,通过多个簇的组合实现高效而灵活的向量化执行。
本文针对分簇结构上向量化实现的特殊本质,研究向量化的表示形式以及在传统寄存器分配框架上实现分簇结构向量寄存器分配的方法。
编译器后端中间语言一般为一种基于目标机指令的中间语言表示,在进入代码生成阶段时由高级中间语言生成。指令注释、寄存器分配、指令调度都运行在该中间语言上。后端层次结构通过控制流结构表示;控制流结构由若干基本块组成;基本块包括若干操作指令;操作指令主要由操作码、源操作数、目的操作数组成。
分簇结构上向量指令是通过多簇组合支持的,并不像传统的向量指令,如表1所列,分簇结构分为x、y、z、t四个簇,每个簇相同物理编号的寄存器组成向量寄存器。……