CN109240699B - 一种减少细粒度随机化安全优化带来的寄存器溢出方法 - Google Patents

一种减少细粒度随机化安全优化带来的寄存器溢出方法 Download PDF

Info

Publication number
CN109240699B
CN109240699B CN201810331811.8A CN201810331811A CN109240699B CN 109240699 B CN109240699 B CN 109240699B CN 201810331811 A CN201810331811 A CN 201810331811A CN 109240699 B CN109240699 B CN 109240699B
Authority
CN
China
Prior art keywords
loop
register
variable
variables
cyclic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810331811.8A
Other languages
English (en)
Other versions
CN109240699A (zh
Inventor
丁丽萍
刘雪花
袁峰
李彦峰
毛跃
杜锦
陈光宣
杜漠
李玉成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUANGDONG ZHONGKE SHISHU TECHNOLOGY Co.,Ltd.
Guangzhou Software Application Technology Research Institute
Nanjing Zhongke Real Number Technology Co ltd
Original Assignee
Nanjing Zhongke Real Number Technology Co ltd
Institute of Software Application Technology Guangzhou GZIS of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Zhongke Real Number Technology Co ltd, Institute of Software Application Technology Guangzhou GZIS of CAS filed Critical Nanjing Zhongke Real Number Technology Co ltd
Priority to CN201810331811.8A priority Critical patent/CN109240699B/zh
Publication of CN109240699A publication Critical patent/CN109240699A/zh
Application granted granted Critical
Publication of CN109240699B publication Critical patent/CN109240699B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • G06F8/452Loops
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开一种减少细粒度随机化安全优化带来的寄存器溢出方法,涉及编译器循环优化技术领域,首先对循环体中寄存器中的变量重新分类,包括循环不变量、循环归纳变量和循环变化量;再对分类后对循环体中寄存器中的变量进行辨别;最后根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取循环展开因子,本发明提出寄存器压力敏感的循环展开方法能在一定程度上改善循环优化效果,减少寄存器溢出的发生;此外对于随机化优化来说,热代码,一般是循环体对随机化带来的性能负载更加敏感,因而改进循环展开优化也能改善细粒度随机化安全优化的效果。

Description

一种减少细粒度随机化安全优化带来的寄存器溢出方法
技术领域
本发明涉及编译器循环优化技术领域,尤其涉及一种减少细粒度随机化安全优化带来的寄存器溢出方法。
背景技术
在编译优化过程中有两类寄存器,一个是硬寄存器,也就是处理器中实际用来存储的有限的存储空间,一个是虚寄存器,是编译过程提出的一种虚拟的寄存器资源,数量远大于真实的寄存器数目。寄存器压力是在编译过程中指在某个程序点上存放所有活跃的伪寄存器值所需要的硬寄存器数目,而一个基本块,循环或者函数的寄存器压力是指在代码块所有的程序点上的寄存器压力的最大值。寄存器溢出是因为寄存器压力过大而导致多余的内存访问的情况,而多余的内存访问会导致程序性能的下降,甚至使得整个系统变慢。寄存器溢出是编译器性能下降的因素之一。会导致寄存器压力增加的编译优化包括一些涉及代码移动,代码冗余等操作的技术,如标量替换,循环不变量外提,公共子表达式消除,内联优化,循环展开,模调度,细粒度的随机化安全优化,而一般的优化在使用虚寄存器时并没有考虑到寄存器压力问题从而可能导致寄存器溢出问题。
现有的少数编译优化技术开始考虑寄存器压力问题,如寄存器敏感的冗余代码消除,内联,寄存器分配,指令调度等等。但是依然有很多的编译优化,尤其是循环优化没有考虑到寄存器压力问题,从而导致潜在的寄存器溢出问题。而循环优化对源代码优化,尤其是科学计算程序有意义重大,并往往被列为判断一个编译器性能的标准。在众多的循环优化技术中,循环展开又是最基础的优化之一,很多的编译优化如向量化,模调度等都是基于循环展开技术的,而且循环展开作为一个单独的优化遍也会被执行多次。另外,对于细粒度的安全优化而言,例如细粒度随机化策略,对循环优化更是敏感。循环展开优化是一种以空间换时间的优化方法,主要通过将循环体的多次展开成类似的独立指令序列来减少跳转类指令,分支惩罚和减少内存读取次数等来达到提高执行速度的目的。已有的循环展开优化并没有考虑到寄存器压力,而只是根据启发式规则进行估计,因为在一定程度上会导致寄存器压力过大,寄存器溢出的发生。本发明提出寄存器压力敏感的循环展开方法能在一定程度上改善循环优化效果,进而也能改善细粒度随机化等优化的效果。
发明内容
本发明提供一种减少细粒度随机化安全优化带来的寄存器溢出方法,通过这种方法能提高循环展开,循环优化,甚至于细粒度随机化安全优化的性能。
为了实现上述目的,本发明提出一种减少细粒度随机化安全优化带来的寄存器溢出方法,包括如下步骤:
对循环体中寄存器中的变量重新分类,包括循环不变量、循环归纳变量和循环变化量;
对分类后对循环体中寄存器中的变量进行辨别;
根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取循环展开因子。
优选地,所述的循环不变量,指的是不随循环体复制而发生变化的变量。
优选地,所述的循环归纳变量,指的是随循环体复制而以固定步长递增或递减的变量,或是其他线性递增或递减的归纳变量。
优选地,所述的循环变化量,指的是除了循环不变量和循环归纳变量之外的变量,其值随着循环的每次迭代发生改变,且无明显的规律。
优选地,所述的对分类后对循环体中寄存器中的变量进行辨别;具体为:
采用数据流分析方法中的活跃变量分析对循环不变量进行辨别。
优选地,所述的对分类后对循环体中寄存器中的变量进行辨别;具体为:
采用仿射归纳变量分析方法对循环归纳变量进行辨别。
优选地,所述的对分类后对循环体中寄存器中的变量进行辨别;具体为:
结合循环不变量和循环归纳变量的结果和已有的循环体内寄存器压力反推循环变化量,即对循环变化量进行辨别。
优选地,所述的采用数据流分析方法中的活跃变量分析对循环不变量进行辨别,具体如下:
基于活跃变量的数据流问题来辨别循环不变量,若变量在程序点的值在沿着程序点出发的路径中使用,则变量在程序点是活跃的,为活跃变量,即循环不变量,否则变量在程序点是死的。
优选地,所述的采用仿射归纳变量分析方法对循环归纳变量进行辨别,具体为:
采用仿射归纳变量分析方法遍历循环体的use-def链条,分别求得基本归纳变量和普通归纳变量集合并取并集。
优选地,所述的结合循环不变量和循环归纳变量的结果和已有的循环体内寄存器压力反推循环变化量,具体为:
采用寄存器压力估算方法获取未展开前循环体的寄存器压力值,即当前循环体内伪寄存器实际需要的硬寄存器数量;
根据未展开前循环体的寄存器压力值减去循环不变量和循环递归变量需要的寄存器数量,获得循环变化量的寄存器数目,即获得循环变化量。
优选地,所述的根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取循环展开因子,具体为:
公式如下:
unroll[i]=(hreg[i]-ivarL-ivL)÷varL (1)
其中,unroll[i]表示第i类寄存器的的循环展开因子,hreg[i]表示第i类寄存器的硬寄存器数量;ivarL表示循环不变量集合的数量;ivL表示循环归纳变量集合的数量;varL表示循环变化量的数量;
unroll=min(unroll[1],unroll[2],...) (2)
其中,unroll表示初始化的化循环展开因子;
将循环展开因子向下取证为2的幂以满足字节对齐;
对比循环展开因子和人工设定的循环展开因子阈值,取其中较小者;
最终得出的数值即为最终的循环展开因子。
优选地,所述的基于活跃变量的数据流问题来辨别循环不变量,具体如下:
设定循环L的基本块序列为:B1,B2,B3,…,Bn,EXIT,其中,EXIT表示一个空基本块,用以表示循环体的结束,则
Figure BDA0001628185380000031
遍历基本块链,查找每个基本块的def集合和use集合;
反向遍历基本块链,基于数据流分析方法中的活跃变量分析方法获取每个基本块的IN集合和OUT集合;
获得IN[B1]集合中的变量即为循环L的活跃变量,即循环不变量。
本发明提供的一种减少细粒度随机化安全优化带来的寄存器溢出方法,本发明提出寄存器压力敏感的循环展开方法能在一定程度上改善循环优化效果,减少寄存器溢出的发生;此外对于随机化优化来说,热代码,一般是循环体对随机化带来的性能负载更加敏感,因而改进循环展开优化也能改善细粒度随机化安全优化的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明一种实施例中减少细粒度随机化安全优化带来的寄存器溢出方法流程图;
图2为本发明一种实施例中循环不变量的辨别方法流程图;
图3为本发明一种实施例中循环展开因子方法流程图;
图4为本发明一种实施例中是基于启发式规则的循环展开优化的循环体复制次数示意图;,
图5为本发明一种实施例中基于寄存器压力的循环展开优化的循环体复制次数示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
由于决定循环展开优化效果的关键是循环展开因子的确定,循环展开因子是循环体被复制的次数,它决定了循环体展开之后的寄存器压力,且这种优化方法是在编译器后端实现,本发明提出一种减少细粒度随机化安全优化带来的寄存器溢出方法;本发明在GCC的RTL表示层的循环展开优化遍实现本发明,并设置基于寄存器压力的循环展开优化开关,用该GCC编译LINPACK,并设置相关优化参数为-02,循环展开因子阈值设置为为8,打开循环优化遍,并使能本发明方法;
本发明一种优选实施例中,如图1所示,包括如下步骤:
S10、对循环体中寄存器中的变量重新分类,包括循环不变量、循环归纳变量和循环变化量;
本发明实施例中,因为本优化方法是在编译器后端,也就是RTL表示层进行实现的,这个阶段大部分变量的属性都已经丢失,为了能对循环体的寄存器压力进行评估,需要对寄存器中的这些变量重新进行分类,本发明根据变量对寄存器压力的影响将其分为三类,分别是循环不变量,循环归纳变量和循环变化量;
1)循环不变量:是指的那些不随循环体复制而发生变化的变量,例如数组基地址,指针,常数等等,这类变量不论循环体复制多少次都只需要一个寄存器来存储数值;
2)循环归纳变量:是指那些随循环体复制而以固定步长递增或递减的变量,或者是其他归纳变量的线性递增递减,例如循环迭代器。这类变量不论循环体复制多少次都只需要一个寄存器来存储数值,循环归纳变量又可以分为基础归纳变量和普通归纳变量;当变量i在循环体内表现为:i=i±c(c是常数),称i为基础归纳变量,而当变量i在循环体内可以表现为:j=aj×i+bj(i是基本归纳变量,而aj和bj是不变量表达式)时,称j为普通归纳变量;
3)循环变化量:是指的除了循环不变量和循环归纳变量之外的变量,其值往往随着循环的每次迭代发生改变,并且没有特别明显的规律;最坏情况下这类变量每随着循环体复制一次需要新增一个寄存器来存储值;
综上所述,循环不变量和循环归纳变量不会随循环体的复制增加寄存器压力,而循环变化量则会增加寄存器压力。
S20、对分类后对循环体中寄存器中的变量进行辨别;
本发明一种优选实施例中,对于循环不变量的辨别是通过经典的数据流分析方法实现的;数据流分析问题可抽象为一个四元组(D,V,∧,F),数据方向D是数据流方向,一般为前向或者后向。半格:包括值集V和一个交汇运算∧以及一个从V1到V2的传递函数族F;本发明主要是基于活跃变量的数据流问题来辨别循环不变量,活跃变量是指如果变量x在程序点p的值,在沿着p点出发的路径中使用,则x在p点是活跃的,否则x在p点是死的;
本发明实施例中,活跃变量表示如下;
D:backwards
(V,∧):(active variables,∪)
Figure BDA0001628185380000051
IN[B]=useB ∪(OUT[B]-defB)
OUT[B]=∪sa successor of B IN[S]
循环体内活跃变量问题定义描述如下:
数据方向D是后向;值集V是活跃变量集合;一个交汇运算∧是并预算;传递函数族F是指基本块B入口处的活跃变量为基本块B出口处活跃变量集合减去基本块B内定义的变量后与基本块B内使用的变量的并集;而基本块B出口处的活跃变量为基本块B后续基本块入口处活跃变量的并集。
本发明一种优选实施例中,如图2所示,循环不变量的辨别具体步骤如下:
S201、设定循环L的基本块序列为:B1,B2,B3,…,Bn,EXIT,其中,EXIT表示一个空基本块,用以表示循环体的结束,则
Figure BDA0001628185380000061
S202、遍历基本块链,查找每个基本块的def集合和use集合;
S203、反向遍历基本块链,根据活跃变量公式获取每个基本块的IN集合和OUT集合;
S204、获得IN[B1]集合中的变量即为循环L的活跃变量,即循环不变量,采用ivarL来表示该集合的数量;
将循环体流图作为输入,计算循环体中每个基本快入口点和出口点活跃变量集合;
本发明一种优选实施例中,对于循环归纳变量的辨别主要采用了RTL表示层已有的仿射归纳变量分析方法遍历循环体的use-def链条分别求得基本归纳变量和普通归纳变量集合并取并集,采用ivL表示该集合的数量;
本发明一种优选实施例中,由于循环变化量无固定的模式和规律可循,一般是结合循环不变量和循环归纳变量的结果和已有的循环体内寄存器压力反推循环变化量;
首先利用已有的寄存器压力估算方法计算出未展开前循环体的寄存器压力,用hregL来表示当前循环体内伪寄存器实际需要的硬寄存器数量,也就是寄存器压力值。
再用循环体展开前的寄存器压力估值减去循环不变量和循环递归变量需要的寄存器数量,剩下的就是循环变化量的寄存器数目,用varL表示循环体内变化量数量,那么:
varL=hregL-ivarL-ivL (3)
S30、根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取循环展开因子。
本发明一种优选实施例中,循环展开因子是循环体被复制的次数,它决定了循环体展开之后的寄存器压力。在RTL表示层,循环展开因子可以基于步骤S20的结果来计算,如图3所示,具体步骤如下:
S301、根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取初始循环展开因子,具体为:
对于大部分CPU架构来说,硬寄存器又分为几类,例如通用寄存器,SSE寄存器,MMX寄存器等。对于每类寄存器分别计算一个循环展开因子;可以按照如下公式计算:
unroll[i]=(hreg[i]-ivarL-ivL)÷varL (1)
其中,unroll[i]表示第i类寄存器的的循环展开因子,hreg[i]表示第i类寄存器的硬寄存器数量;ivarL表示循环不变量集合的数量;ivL表示循环归纳变量集合的数量;varL表示循环变化量的数量;
unroll=min(unroll[1],unroll[2],...) (2)
其中,unroll表示初始化的化循环展开因子;
S302、将循环展开因子向下取证为2的幂以满足字节对齐;
S303、对比循环展开因子和人工设定的循环展开因子阈值,取其中较小者;
S304、最终得出的数值即为最终的循环展开因子。
本发明一种优选实施例中,循环展开因子计算结果对比如图4和图5所示。图4,图5是对文件linpack-new.c进行编译输出的中间日志,loop unrollled表示对循环体被复制的次数,这个数据加1表示实际的循环展开因子。其中图4展现的是基于启发式规则的循环展开优化的循环体复制次数,图5展现的是基于寄存器压力的循环展开优化的循环体复制次数;通过测试,基于寄存器压力的循环展开优化比基于启发式规则的循环展开优化性能提升最高3%,平均1%。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (11)

1.一种减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,包括如下步骤:
对循环体中寄存器中的变量重新分类,包括循环不变量、循环归纳变量和循环变化量;
对分类后对循环体中寄存器中的变量进行辨别;
根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取循环展开因子;
根据循环展开因子进行循环展开优化,同时不会或很少造成寄存器溢出;
所述的根据辨别后循环体寄存器中循环不变量、循环归纳变量和循环变化量的数量,获取循环展开因子,具体为:
公式如下:
unroll[i]=(hreg[i]–ivarL-ivL)÷varL (1)
其中,unroll[i]表示第i类寄存器的循环展开因子,hreg[i]表示第i类寄存器的硬寄存器数量;ivarL表示循环不变量集合的数量;ivL表示循环归纳变量集合的数量;varL表示循环变化量的数量;
unroll=min(unroll[1],unroll[2],…) (2)
其中,unroll表示初始化的化循环展开因子;
将循环展开因子向下取证为2的幂以满足字节对齐;
对比循环展开因子和人工设定的循环展开因子阈值参数,取其中较小者;
最终得出的数值即为最终的循环展开因子。
2.根据权利要求1所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的循环不变量,指的是不随循环体复制而发生变化的变量。
3.根据权利要求1所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的循环归纳变量,指的是随循环体复制而以固定步长递增或递减的变量,或是其他线性递增或递减的归纳变量。
4.根据权利要求1所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的循环变化量,指的是除了循环不变量和循环归纳变量之外的变量,其值随着循环的每次迭代发生改变,且无明显的规律。
5.根据权利要求1所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的对分类后对循环体中寄存器中的变量进行辨别;具体为:
采用数据流分析方法中的活跃变量分析对循环不变量进行辨别。
6.根据权利要求1所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的对分类后对循环体中寄存器中的变量进行辨别;具体为:
采用仿射归纳变量分析方法对循环归纳变量进行辨别。
7.根据权利要求1所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的对分类后对循环体中寄存器中的变量进行辨别;具体为:
结合循环不变量和循环归纳变量的结果和已有的循环体内寄存器压力反推循环变化量,即对循环变化量进行辨别。
8.根据权利要求5所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的采用数据流分析方法中的活跃变量分析对循环不变量进行辨别,具体如下:
基于活跃变量的数据流问题来辨别循环不变量,若变量在程序点的值在沿着程序点出发的路径中使用,则变量在程序点是活跃的,为活跃变量,即循环不变量,否则变量在程序点是死的。
9.根据权利要求6所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的采用仿射归纳变量分析方法对循环归纳变量进行辨别,具体为:
采用仿射归纳变量分析方法遍历循环体的use-def链条,分别求得基本归纳变量和普通归纳变量集合并取并集。
10.根据权利要求7所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的结合循环不变量和循环归纳变量的结果和已有的循环体内寄存器压力反推循环变化量,具体为:
采用寄存器压力估算方法获取未展开前循环体的寄存器压力值,即当前循环体内伪寄存器实际需要的硬寄存器数量;
根据未展开前循环体的寄存器压力值减去循环不变量和循环递归变量需要的寄存器数量,获得循环变化量的寄存器数目,即获得循环变化量。
11.根据权利要求8所述的减少细粒度随机化安全优化带来的寄存器溢出方法,其特征在于,所述的基于活跃变量的数据流问题来辨别循环不变量,具体如下:
设定循环L的基本块序列为:B1,B2,B3,…,Bn,EXIT,其中,EXIT表示一个空基本块,用以表示循环体的结束,则
Figure FDA0003271119560000021
遍历基本块链,查找每个基本块的def集合和use集合;
反向遍历基本块链,基于数据流分析方法中的活跃变量分析方法获取每个基本块的IN集合和OUT集合;
获得IN[B1]集合中的变量即为循环L的活跃变量,即循环不变量。
CN201810331811.8A 2018-04-13 2018-04-13 一种减少细粒度随机化安全优化带来的寄存器溢出方法 Active CN109240699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810331811.8A CN109240699B (zh) 2018-04-13 2018-04-13 一种减少细粒度随机化安全优化带来的寄存器溢出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810331811.8A CN109240699B (zh) 2018-04-13 2018-04-13 一种减少细粒度随机化安全优化带来的寄存器溢出方法

Publications (2)

Publication Number Publication Date
CN109240699A CN109240699A (zh) 2019-01-18
CN109240699B true CN109240699B (zh) 2022-01-04

Family

ID=65084108

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810331811.8A Active CN109240699B (zh) 2018-04-13 2018-04-13 一种减少细粒度随机化安全优化带来的寄存器溢出方法

Country Status (1)

Country Link
CN (1) CN109240699B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3017090A (en) * 1955-01-24 1962-01-16 Ibm Overflow control means for electronic digital computers
CN102750150A (zh) * 2012-06-14 2012-10-24 中国科学院软件研究所 基于x86架构的稠密矩阵乘法汇编代码自动生成方法
CN105393217A (zh) * 2013-07-24 2016-03-09 马维尔国际贸易有限公司 用于编译器优化的方法和系统
CN106599370A (zh) * 2016-11-16 2017-04-26 中山大学 一种高层次综合工具中的指引文件自动生成方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038984A1 (en) * 2005-08-12 2007-02-15 Gschwind Michael K Methods for generating code for an architecture encoding an extended register specification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3017090A (en) * 1955-01-24 1962-01-16 Ibm Overflow control means for electronic digital computers
CN102750150A (zh) * 2012-06-14 2012-10-24 中国科学院软件研究所 基于x86架构的稠密矩阵乘法汇编代码自动生成方法
CN105393217A (zh) * 2013-07-24 2016-03-09 马维尔国际贸易有限公司 用于编译器优化的方法和系统
CN106599370A (zh) * 2016-11-16 2017-04-26 中山大学 一种高层次综合工具中的指引文件自动生成方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Exploration of Loop Unroll Factors in High Level Synthesis;Preeti Ranjan Panda等;《2018 31st International Conference on VLSI Design and 2018 17th International Conference on Embedded Systems》;20180329;465-466 *
GCC 编译器中循环数组预取优化的实现及效果;董钰山 等;《计算机工程与应用》;20161231;第52卷(第6期);19-25 *

Also Published As

Publication number Publication date
CN109240699A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
Negi et al. Accurate estimation of cache-related preemption delay
JP3618442B2 (ja) マイクロプロセッサのパワーエスティメータ装置
US5537620A (en) Redundant load elimination on optimizing compilers
Wang et al. Bmat-a binary matching tool for stale profile propagation
US8726251B2 (en) Pipelined loop parallelization with pre-computations
Bolz et al. Storage strategies for collections in dynamically typed languages
Gueta et al. Cartesian partial-order reduction
US20050144602A1 (en) Methods and apparatus to compile programs to use speculative parallel threads
US5787287A (en) Representation of control flow and data dependence for machine
Gopinath et al. Applying compiler techniques to scheduling in real-time systems
Ciesinski et al. Reduction techniques for model checking Markov decision processes
Tofan et al. Formal verification of a lock-free stack with hazard pointers
Eckstein et al. Code instruction selection based on SSA-graphs
Apinis et al. How to combine widening and narrowing for non-monotonic systems of equations
Chatterjee et al. Symbolic algorithms for qualitative analysis of Markov decision processes with Büchi objectives
Monniaux Abstract interpretation of programs as Markov decision processes
Cohen et al. Local proofs for global safety properties
Saha An incremental bisimulation algorithm
CN109240699B (zh) 一种减少细粒度随机化安全优化带来的寄存器溢出方法
EP3871081B1 (en) Register renaming-based techniques for block-based processors
Alewine et al. Branch Recovery with Compiler-Assisted Multiple Instruction Retry.
Flexeder et al. Fast interprocedural linear two-variable equalities
Fidge Proof obligations for real-time refinement
Wang et al. Predicate learning and selective theory deduction for a difference logic solver
Chatterjee et al. Faster algorithms for mean-payoff parity games

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 701, Building A, 1121 Haibin Road, Nansha District, Guangzhou City, Guangdong Province

Applicant after: INSTITUTE OF SOFTWARE APPLICATION TECHNOLOGY, GUANGZHOU & CHINESE ACADEMY OF SCIENCES

Applicant after: Nanjing Zhongke real number Technology Co.,Ltd.

Address before: Room 701, Building A, 1121 Haibin Road, Nansha District, Guangzhou City, Guangdong Province

Applicant before: INSTITUTE OF SOFTWARE APPLICATION TECHNOLOGY, GUANGZHOU & CHINESE ACADEMY OF SCIENCES

Applicant before: SHISHU (NANJING) TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 1121 Haibin Road, Nansha District, Guangzhou, Guangdong 510000

Patentee after: Guangzhou Software Application Technology Research Institute

Patentee after: Nanjing Zhongke real number Technology Co.,Ltd.

Address before: Room 701, Building A, 1121 Haibin Road, Nansha District, Guangzhou City, Guangdong Province

Patentee before: INSTITUTE OF SOFTWARE APPLICATION TECHNOLOGY, GUANGZHOU & CHINESE ACADEMY OF SCIENCES

Patentee before: Nanjing Zhongke real number Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230523

Address after: Room 501-5, 501-6, 501-7, 501-8, 501-9, 501-10, 5th floor, No.128 Jiaoxi Road, Huangge Town, Nansha District, Guangzhou City, Guangdong Province, 510000

Patentee after: GUANGDONG ZHONGKE SHISHU TECHNOLOGY Co.,Ltd.

Address before: 1121 Haibin Road, Nansha District, Guangzhou, Guangdong 510000

Patentee before: Guangzhou Software Application Technology Research Institute

Patentee before: Nanjing Zhongke real number Technology Co.,Ltd.