【技术实现步骤摘要】
本专利技术涉及一种寻址操作编译优化、偏移量分配(Offset Assignment)优化方法,特别涉及一种针对“受限制的索引寻址模式”的偏移量分配优化方法。
技术介绍
由于嵌入式处理器的片上存储容量有限,因此如何减少代码大小是编译器为嵌入式处理器生成代码时需要考虑的一个因素。偏移量分配优化,就是通过重新分配变量在存储器中的位置,从而最大化的利用处理器提供的特定寻址模式来优化寻址代码的一种优化方法。偏移量分配优化最早由文献1[S.Liao,S.Devadas,K.Keutzer,S,Tjiang,A.Wang.Storage Assignment to Decrease Code Size.ACM SIGPLAN Conferenceon Programming Language Design and Implementation,1995]提出,是针对部分嵌入式处理器提供的自增/自减(autoincrement/autodecrement)寻址模式的一种优化方法。自增/自减寻址模式是指指令在访问地址寄存器所指向地址的同时,地址寄存器的值自增或自减k(通常k=1)。充分利用自增/自减寻址模式来访存,可以减少显式的地址计算。所以,通过重新分配变量在存储器中的位置,使得尽可能多的利用自增/自减寻址模式来进行访存,能够减少代码大小,提高代码效率。有一些嵌入式处理器,如Intel IXP 2400,除了支持自增/自减寻址模式外,还支持一种特殊的索引寻址模式,即基地址+偏移量的寻址模式,我们将这种特殊的索引寻址模式称为“受限制的索引寻址模式”。不同于一般的通用处理 ...
【技术保护点】
一种针对受限制的索引寻址模式的偏移量分配优化方法,包括以下步骤: 1)对存储器中的所有变量形成访问图; 2)新建一个组group,找出当前访问图中权重最大的一条边,将它的两个顶点加入组group,并将这两个顶点标记为已分配; 3)选取一个未分配的节点x,判断是否满足下列四种情况之一: (a)将要选取的节点不是组group的最后一个节点;且节点x是所有未分配节点中与当前组group内所有节点构成的边上的权重之和最大的节点; (b)当前组group中节点的数目小于“受限制的索引寻址模式”中利用同一个基地址最多能访问变量的数目m的1/2;且节点x是所有未分配节点中与当前组group内部所有节点构成的边上的权重之和最大的节点之一;且节点x是所有未分配节点中与当前组group外部所有节点构成的边上的权重之和最大的节点; (c)将要选取的节点是组group的最后一个节点;且节点x与组group内部的所有节点的总权重减去节点x与组group外部的所有未分配节点的总权重的差值是所有未分配节点中最大; (d)将要选取的节点是组group的最后一个节点;且节点x是 ...
【技术特征摘要】
1.一种针对受限制的索引寻址模式的偏移量分配优化方法,包括以下步骤1)对存储器中的所有变量形成访问图;2)新建一个组group,找出当前访问图中权重最大的一条边,将它的两个顶点加入组group,并将这两个顶点标记为已分配;3)选取一个未分配的节点x,判断是否满足下列四种情况之一(a)将要选取的节点不是组group的最后一个节点;且节点x是所有未分配节点中与当前组group内所有节点构成的边上的权重之和最大的节点;(b)当前组group中节点的数目小于“受限制的索引寻址模式”中利用同一个基地址最多能访问变量的数目m的1/2;且节点x是所有未分配节点中与当前组group内部所有节点构成的边上的权重之和最大的节点之一;且节点x是所有未分配节点中与当前组group外部所有节点构成的边上的权重之和最大的节点;(c)将要选取的节点是组group的最后一个节点;且节点x与组group内部的所有节点的总权重减去节点x与组group外部的所有未分配节点的总权重的差值是所有未分配节点中最大;(d)将要选取的节点是组group的最后一个节点;且节点x是所有未分配节点中与组group内部节点和外部节点的总权重差值最大的节点之一;且节点x是所有未分配节点中与当前组group内所有节点构成的边上的权重之和最大的节点;将满足上述四种情况之一的节点x加入组group,并将节点x在访问图中标记为已分配;4)重复执行步骤3),直到组group中的变量数已满,即达到一个基地址最多能访问变量的数目m;5)组group中的变量形成一个子图,将组group中的变量在存储器中相应地分成一组,将组group中的所有节点以及相应的边从访问图上删除;6)重复执行步骤2),直到将访问图中的节点全部分配完毕。2.根据权利要求1所述的针对受限制的索引寻址模式的偏移量分配优化方法,其特征在于,所述步骤1)的执行过程为遍历要编译的程序单元,遇到对存储器中变量v的一次访问,假设上一次访问到的存储器中变量为u,则将新增边<u,v>加入访问图。3.根据权利要求2所述的针对受限制的索引寻址模式的偏移量分配优化方法,其特征在于,所述新增边<u,v>的权重设为1。4.根据权利要求2所述的针对受限制的索引寻址模式的偏移量分配优化方法,其特征在于,所述新增边<u,v>的权重设为其所在基本块的执行频率,或者为两个变量分别所在的两个基本块之间控制边的执行频率。5.一种针对受限制的索引寻址模式的偏移量分配优化方法,包括以下步骤1)置变量last_access_variable的值为-1;2)判断程序单元中所有指令是否都已处理过?如果是,执行步骤7);如果否,执行下一步;3)读入一条指令,判断指令中是否存在对存储器的访问?若是,执行下一步;若否,执行步骤2);4)记录当前指令中访问的变量v,判断last_access_variable的值是否为-1?若否,执行下一步...
【专利技术属性】
技术研发人员:包斌,吴承勇,刘弢,张兆庆,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。