用于识别程序中的动态单次使用生成定义的编译器方法和设备技术

技术编号:46625403 阅读:0 留言:0更新日期:2025-10-14 21:21
公开了一种用于识别程序中的动态单次使用生成定义的编译器方法和设备。所述方法包括:针对所述程序构造静态单赋值(SSA)形式和静态单次使用(SSU)形式;针对每个SSU版本局部地设置单次使用不合格属性,并在SSU图上前向和反向传播单次使用不合格属性,因此单次使用不合格属性成为全局属性;将结果从SSU形式传递到SSA形式,以基于发生任何使用与不合格的SSU版本相关联,针对每个SSA版本局部地设置单次使用属性;对SSA图执行数据流分析,因此单次使用属性成为全局属性,以将一个或多个定义识别为程序中的变量的动态单次使用;和基于一个或多个定义来生成用于执行程序的计算机可读指令,其中,一个或多个定义具有在程序的执行期间恰好使用一次的定义值。

【技术实现步骤摘要】

公开总体上涉及编译器技术。更具体地,在此公开的主题涉及对用于识别计算机程序中的动态单次使用生成定义(dynamic single-use producing definition)的方法和设备的改进。


技术介绍

1、用命令式编程语言编写的计算机程序的执行涉及将数据存储到程序变量中,并且稍后引用这些变量。在机器代码级别也是如此,其中,程序已被编译为与处理器的指令集架构(isa)对应的指令。通常,将每个指令的结果定义(存储)到寄存器中,并且稍后将定义的值用作进一步计算中的操作数。现代处理器可利用被定义为在执行期间仅使用一次的值的知识来提高运行时性能并降低功耗。为了在这方面进行优化,编译器应当识别和标记这些“使用一次”(或“单次使用”)定义以实现这样的硬件改进。该“使用一次”限定是动态的,在某种意义上它是按指令被提取和执行的次序的执行时间表征。这与静态指定(staticdesignation)相反,静态指定表示当程序被存储在存储器中时定义和使用的相对位置。

2、当定义和定义的单次使用二者在同一基本块(指令的直线序列)内时,该问题被解决。然而,当定义与本文档来自技高网...

【技术保护点】

1.一种用于识别程序中的动态单次使用生成定义的方法,包括:

2.如权利要求1所述的方法,其中,构造SSA形式的步骤包括:在定义和使用的支配边界处插入函数,并且通过经由根据控制流图形成的支配树的前序遍历对SSA版本进行赋值来对定义和使用进行重命名。

3.如权利要求1所述的方法,其中,SSU形式被构造在SSA形式之上,并且

4.如权利要求1所述的方法,还包括:

5.如权利要求4所述的方法,还包括:对于SSU形式中的不具有定义的第一SSU版本和作为具有一个或多个⊥操作数的函数λ的右手侧的第二SSU版本,将单次使用不合格数组中的与第一SSU版本和第...

【技术特征摘要】

1.一种用于识别程序中的动态单次使用生成定义的方法,包括:

2.如权利要求1所述的方法,其中,构造ssa形式的步骤包括:在定义和使用的支配边界处插入函数,并且通过经由根据控制流图形成的支配树的前序遍历对ssa版本进行赋值来对定义和使用进行重命名。

3.如权利要求1所述的方法,其中,ssu形式被构造在ssa形式之上,并且

4.如权利要求1所述的方法,还包括:

5.如权利要求4所述的方法,还包括:对于ssu形式中的不具有定义的第一ssu版本和作为具有一个或多个⊥操作数的函数λ的右手侧的第二ssu版本,将单次使用不合格数组中的与第一ssu版本和第二ssu版本对应的条目设置为真。

6.如权利要求1所述的方法,其中,传播单次使用不合格属性的步骤包括:通过遍历ssu图并基于在控制流分叉的点处插入的运算符更新单次使用不合格数组来传播ssu形式中的单次使用不合格属性,并且

7.如权利要求1所述的方法,其中,所述方法针对所述程序中的变量被迭代地执行,并且识别所述程序中的定义中的每个是否是动态单次使用。

8.一种用于识别程序中的动态单次使用生成定义的设备,包括:

9.如权利要求8所述的设备,其中,构造ssa形式的步骤包括:在定义和使用的支配边界处插入函数,并且通过经由根据控制流图形成的支配树的前序遍历对ssa版本进行赋值来对定义和使用进行重命名。

10.如权利要求8所述的设备,其中,ssu形式被构造在ssu形式之上,并且

11.如权利要求8所述的设备,其中,存储器还存储另外的指令,所述另外的指令在由处理器执行时还使得所述设备:

12.如权利要求11所述的设备,其中,所述存储器还存储另外的指令,当所述...

【专利技术属性】
技术研发人员:弗雷德里克·C·周蒂莫西·孔
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1