【技术实现步骤摘要】
一种基于函数抽象指令序列的最内层循环全展开方法
[0001]本专利技术对大部分处理机体系结构,尤其是具有多类寄存器资源和
VLIW
流水线体系结构,具有相当重要的作用
。
该方法会提高
VLIW
指令级并行度;减少循环体之间的跳转指令
、
循环判断指令,另外还去除了条件判断中的归纳变量在循环展开中的迭代;提升了后续指令调度的自由度
。
技术介绍
[0002]多类寄存器资源的体系结构包含多个不同类型的寄存器,以支持不同类型的指令和操作
。
这种体系结构的目的是提高处理器的灵活性和性能,以满足不同的应用需求
。
常见的多类寄存器资源的体系结构:
1、VLIW
架构:
VLIW
架构使用多个寄存器文件,每个文件专门用于存储不同类型的数据,例如整数
、
浮点数和向量数据
。
这些寄存器文件可同时被多条指令访问,从而提高了并行性和性能
。2、EPIC
架构:
EPIC
架构
(Explicitly Parallel Instruction Computing
,显式并行指令计算
)
使用多个寄存器窗口,每个窗口用于存储不同类型的数据
。
每个指令都明确指定它需要哪些寄存器窗口,并行执行多条指令
。3、ARM
架构:
ARM
架构使用多个寄存器文件,每个 ...
【技术保护点】
【技术特征摘要】
1.
一种基于函数抽象指令序列的最内层循环全展开方法,其特征在于:包括以下步骤,步骤1,分析函数中各基本块内指令间的依赖关系;步骤2,通过变量的活跃性分析来构造函数的
DU
链和
UD
链;步骤3,通过遍历最内层循环的指令序列的内容,识别最内层循环中的归纳变量
IV
;步骤4,通过
UD
链找出循环边界常量,将其赋值给
loopBoundaryValue
;步骤5,根据各类寄存器中的寄存器数量和循环中变量活跃情况,计算循环展开因子
unrollFactorFinal
;步骤6,根据循环边界常量和展开因子进行循环全展开,将循环完全线性化
。2.
根据权利要求1所述的一种基于函数抽象指令序列的最内层循环全展开方法,其特征是:所述步骤4的具体方式包括如下步骤,步骤
4.1
,找出最内层循环中主循环块前的条件判断指令基本块
(
该方法只识别
≤
该类型的循环条件判断
)
,当找到该基本块后进入步骤
4.2
;步骤
4.2
,找出条件判断指令基本块中最后一条使用循环边界量来计算循环条件的指令,当找到该指令后,需要定位到代表循环边界量的使用变量
use
,之后进入步骤
4.3
;步骤
4.3
,通过步骤2所得的
UD
链,找出步骤
4.2
所定位的使用变量
use
所对应的定值集合
defs(
找出的
def
可能不止一个
)
,对找到的定值集合
defs
判断它是否同时满足:
①
定值集合
defs
中只能存在一个定值
def、
②
该定值
def
必须在循环第一个基本块之前
。
当不同时满足这两个条件时,退出该函数,反之,则进入步骤
4.4
;步骤
4.4
,将满足上述条件的定值
def
赋值给
【专利技术属性】
技术研发人员:刘澎,周新莲,胡勇华,姜颖,莫尚丰,梁晋曦,
申请(专利权)人:湖南科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。