-
公开(公告)号:CN114237573B
公开(公告)日:2024-09-17
申请号:CN202111563671.5
申请日:2021-12-20
Applicant: 中国科学院计算技术研究所
IPC: G06F8/30 , G06F8/33 , G06F40/186
Abstract: 本发明提供一种编译器后端代码自动构建方法,所述方法包括:S1、获取与目标平台同一框架下的已有样本平台的后端描述文件,构建其基于定义‑引用关系的标识符引用关系图;S2、基于标识符引用关系图,对标识符分类,其中,标识符被分为语言特定类型、平台特性信息类型、开发者定义类型;S3、将每条指令中不同类型的标识符转换为对应的敏捷标识符,并基于标识符引用关系图生成每条指令对应的以敏捷标识符表示的代码布局模板,所述代码布局模板中包含有平台特性信息的标识符定位;S4、基于代码布局模板生成目标平台的指令模块,按照定位将目标平台编码指令中的平台特性信息属性值填入指令模板中以生成当前目标平台编码指令对应的编译器后端代码。
-
公开(公告)号:CN110442346B
公开(公告)日:2020-11-03
申请号:CN201910608055.3
申请日:2019-07-08
Applicant: 中国科学院计算技术研究所
Abstract: 本发明提供一种用于编译器代码检测的规则扩充方法,包括:步骤1)判断新扩充规则的所属类别;步骤2)在所述所属类别中查找与所述新扩充规则相近的已实现规则,推荐与所述新扩充规则相近的已实现规则的调用点;其中,规则的类别是对所有已实现规则的调用点进行聚类而构建的,已实现规则的调用点是该已实现规则在编译器中的实现位置。本发明能够快速地向代码检测器的开发人员推荐新扩充规则在编译器中的实现位置,大大降低了规则扩充的人力成本和时间成本;此外本发明适用于不同编程语言的规则,具有通用性。
-
公开(公告)号:CN110442346A
公开(公告)日:2019-11-12
申请号:CN201910608055.3
申请日:2019-07-08
Applicant: 中国科学院计算技术研究所
Abstract: 本发明提供一种用于编译器代码检测的规则扩充方法,包括:步骤1)判断新扩充规则的所属类别;步骤2)在所述所属类别中查找与所述新扩充规则相近的已实现规则,推荐与所述新扩充规则相近的已实现规则的调用点;其中,规则的类别是对所有已实现规则的调用点进行聚类而构建的,已实现规则的调用点是该已实现规则在编译器中的实现位置。本发明能够快速地向代码检测器的开发人员推荐新扩充规则在编译器中的实现位置,大大降低了规则扩充的人力成本和时间成本;此外本发明适用于不同编程语言的规则,具有通用性。
-
公开(公告)号:CN104679477B
公开(公告)日:2017-08-01
申请号:CN201510082216.1
申请日:2015-02-15
Applicant: 中国科学院计算技术研究所
IPC: G06F9/30
Abstract: 本发明提供一种面向可变粒度内存系统的二进制文件重写方法,包括:在二进制文件的中间表示中找到热循环区域;对于访存行为符合可变粒度访存模式的热循环区域,合并该区域内的访存信息,并且在该区域之前插入头语句;以及,根据修改后的热循环区域生成目标机器代码。本发明能够自动完成在二进制文件上支持可变粒度内存系统的访存操作;通过自动分析应用程序特征以及可变粒度内存系统的核心特征,选择合适的重写方式,兼顾了二进制文件重写过程的效率和二进制文件的执行性能。
-
公开(公告)号:CN104679477A
公开(公告)日:2015-06-03
申请号:CN201510082216.1
申请日:2015-02-15
Applicant: 中国科学院计算技术研究所
IPC: G06F9/30
Abstract: 本发明提供一种面向可变粒度内存系统的二进制文件重写方法,包括:在二进制文件的中间表示中找到热循环区域;对于访存行为符合可变粒度访存模式的热循环区域,合并该区域内的访存信息,并且在该区域之前插入头语句;以及,根据修改后的热循环区域生成目标机器代码。本发明能够自动完成在二进制文件上支持可变粒度内存系统的访存操作;通过自动分析应用程序特征以及可变粒度内存系统的核心特征,选择合适的重写方式,兼顾了二进制文件重写过程的效率和二进制文件的执行性能。
-
公开(公告)号:CN104376366A
公开(公告)日:2015-02-25
申请号:CN201310354026.1
申请日:2013-08-14
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
Abstract: 本发明实施例提供一种最优网络最大流算法的选择方法和设备。涉及网络最大流领域,能够根据不同的网络流图确定最优的网络最大流算法。该方法包括:算法选择设备获取网络流图,并根据该网络流图得到第一残量网络;获取操作算法集合,其中,该操作算法集合包括至少两个算法,在该第一残量网络中通过该至少两个算法并行进行预流推进,得到第二残量网络,并在该第二残量网络中确定该至少两个算法对应的关键边的数量,确定该关键边的数量的最大值对应的算法为该网络流图的最优网络最大流算法。本发明实施例用于网络最大流算法的选择。
-
公开(公告)号:CN101216774A
公开(公告)日:2008-07-09
申请号:CN200810055607.4
申请日:2008-01-03
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种使用空闲寄存器类作为快速溢出空间的优化方法。该方法包括下列步骤:计算活跃区间的溢出代价并采用插桩工具以及静态分析汇编代码相结合的方式对应用程序中的溢出代价进行评估;在原有寄存器分配中,为每个应用程序确定合适的访存延迟值;使用静态分析的结果以及新的访存延迟建立代价模型,计算使用空闲寄存器作为快速溢出空间可能带来的收益和代价,并根据计算结果选择是否使用一种使用空闲寄存器类作为快速溢出空间的优化方法。其能够有效缓解溢出带来的负面效应,并且弥补了软件溢出优化方法中访存压力无法有效改善的不足。
-
公开(公告)号:CN1912848A
公开(公告)日:2007-02-14
申请号:CN200510090093.2
申请日:2005-08-12
Applicant: 中国科学院计算技术研究所
Abstract: 本发明公开了一种对编译器中的错误进行自动定位的方法,包括:编译器编译应用程序的源文件,得到应用程序的目标文件集合;定位应用程序中出错的目标文件;从所得到的出错目标文件中定位出错函数;从所得到的出错函数中定位可能引起错误的优化阶段,减小错误所在区域的查找范围,得到最初导致错误的优化阶段和编译器导致错误的优化选项。本发明的优点在于:实现了对目标文件中的最初错误阶段的快速定位和错误优化选项的快速查找,有利于技术人员对后续分析工作的实现,减少了分析所占用的时间。
-
-
-
-
-
-
-