-
公开(公告)号:CN1881175A
公开(公告)日:2006-12-20
申请号:CN200510077171.5
申请日:2005-06-16
Applicant: 中国科学院计算技术研究所
Abstract: 本发明公开了一种解决多寄存器组冲突的方法,包括:1)建立寄存器冲突图,图中的每个节点都代表一个虚拟寄存器,各个节点有优先级;两个节点之间存在一条边表示存在寄存器组冲突;2)对节点,按照优先级从高到低的顺序开始分配寄存器组;3)对一个节点,计算被分配到各个寄存器组的代价;4)将代价与阀值做比较,如果所有代价均大于阀值,则对该节点做区间分割,否则执行下一步;5)如果节点分配到一个寄存器组的代价小于其它寄存器组,则指定该寄存器组给节点;6)寄存器冲突图中的所有节点分配完寄存器组后,将结果与寄存器冲突图做比较,如果存在寄存器组冲突,则在所有以这两个节点所对应的虚拟寄存器为源操作数的指令前插入拷贝指令。
-
公开(公告)号:CN1818861A
公开(公告)日:2006-08-16
申请号:CN200610008273.6
申请日:2006-02-20
Applicant: 中国科学院计算技术研究所
IPC: G06F9/44
Abstract: 本发明公开了一种COBOL到JAVA代码翻译中面向对象翻译的方法,包括:定义一个类数据的抽象封装类;定义类体,按照翻译传统COBOL程序的方法把COBOL类语法元素:类、类对象、对象和方法翻译成相应的JAVA类;为类体定义一个类接口,该类接口中包含了类数据封装类的定义、类数据对象和实例数据的定义以及所有的类方法和实例方法的接口方法的定义,类接口之间的继承关系体现了COBOL中的类之间的继承关系;翻译类使用语句,将类方法的调用语句翻译为对类接口中相应方法的调用,对于实例方法调用语句,将实例方法的调用语句翻译为对类接口中相应方法的调用。本方法充分利用了JAVA语言面向对象的机制,有较好的运行效率。
-
公开(公告)号:CN104866417A
公开(公告)日:2015-08-26
申请号:CN201410064881.3
申请日:2014-02-25
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
IPC: G06F11/36
Abstract: 本发明实施例提供一种路径敏感检测方法和装置,本发明路径敏感检测方法,包括:根据值流错误类型为变量设置初始的与错误相关的属性,沿着定值引用链传播初始的与错误相关的属性,在潜在错误语句处识别变量的与错误相关的属性,根据在潜在错误语句处识别的变量的与错误相关的属性,确定潜在错误语句为可能错误语句,根据可能错误语句获得路径敏感检测的语句输入集,根据路径敏感检测的语句输入集进行路径敏感检测。从而解决现有技术中检测值流错误存在的可扩展性并不理想,无法有效应用于大规模的应用程序的问题,通过减少路径敏感检测的语句输入集降低了检测开销,能够有效应用于大规模的应用程序。
-
公开(公告)号:CN101866315B
公开(公告)日:2013-01-02
申请号:CN201010204249.6
申请日:2010-06-11
Applicant: 中国科学院计算技术研究所
IPC: G06F11/36
Abstract: 本发明涉及软件开发工具的测试方法及其系统,方法包括:步骤1,配置模块获得并存储开源软件项目的构建命令,保存配置的对所述构建命令的修改方式;步骤2,测试执行模块读取存储的构建命令,依据配置的修改方式修改所述构建命令流,以将构建命令流转化为测试命令流;步骤3,测试执行模块调用待测试的软件开发工具执行所述测试命令流,进行构建过程重放;步骤4,测试执行模块监控构建过程重放,测试报告生成模块根据测试执行模块输出的监控结果生成测试报告。本发明能够提高对软件开发工具的测试的效率。
-
公开(公告)号:CN100359472C
公开(公告)日:2008-01-02
申请号:CN200510080339.8
申请日:2005-07-01
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中库函数调用的处理方法,尽可能地对源X86二进制程序中的库函数调用进行识别和提升;对于可包装库函数,用目标机本地的约定进行传参和返回值处理,这样省去了对X86参数压栈和从堆栈中取返回值的模拟,避免了频繁的内存操作,使用本地的库函数,也不会因为翻译PLT、fixup函数、库函数的源二进制代码造成代码膨胀导致的性能损失,提高了程序执行的效率;对于PLT短路库函数,虽然继续维护X86模拟堆栈,但是控制流不进入PLT和动态链接器的fixup函数,即不翻译PLT和动态链接器的fixup函数的源二进制代码,避免了因为翻译PLT、fixup函数造成代码膨胀导致的性能损失,控制流直接进入库函数的本地码,也能够较好地提高程序执行的效率。
-
公开(公告)号:CN1828539A
公开(公告)日:2006-09-06
申请号:CN200510051448.7
申请日:2005-03-04
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了一种二进制翻译中对局部变量识别和提升的方法包括以下步骤:a.对翻译单元进行条件判别,判断在此翻译单元内能否进行局部变量的提升;b.依次对可处理翻译单元的每个基本块进行处理,对每条指令的局部变量进行识别;c.将b步骤中识别出来的局部变量进行提升,将识别出来的信息传播到整个翻译单元,并在必要的时候进行同步;本发明克服现有二进制翻译技术中局部变量不能和其他内存操作数区别对待的缺陷,通过对局部变量识别和提升,提高翻译质量和效果,从而提高二进制翻译的性能。
-
公开(公告)号:CN1716202A
公开(公告)日:2006-01-04
申请号:CN200410009287.0
申请日:2004-06-30
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明公开了动静结合二进制翻译中静态信息不完备的处理方法及装置,通过预留必要的入口,由动态翻译执行器进行即时翻译,并通过和预留入口相链接的方式发挥系统的性能。增加设置入口和采用即时翻译,克服现有技术动态执行中长时间无法返回静态所生成的本地码的问题,以及动态是单纯采用解释执行效率低的问题,提高代码质量和系统整体性能。
-
公开(公告)号:CN1680922A
公开(公告)日:2005-10-12
申请号:CN200410030988.2
申请日:2004-04-05
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明涉及一种遗产代码向现代语言变换过程中的控制流变换方法。该方法包括以下步骤:将COBOL程序的一个“过程”转换成一个Java类;在上述Java类中设置一个“入口函数”;设置上述“入口函数”的内容;对COBOL程序的段名进行编号;对COBOL过程体结构进行处理:对PERFORM语句进行处理:对GOTO语句进行处理:对PERFORM语句进行处理:当遇到PERFORM语句时,将其翻译为:执行函数,包括其入口,出口对应的编号,参数列表;在每个段尾增加一条语句:if(出口点=本段编号)return。在遗产代码向现代语言变换过程中利用高级语言的switch和while语句来同时消除GOTO和PERFORM复合控制结构。该方法不改变程序的结构,保持了程序可读性,并较好地控制了代码膨胀。
-
公开(公告)号:CN1560740A
公开(公告)日:2005-01-05
申请号:CN200410005453.X
申请日:2004-02-19
Applicant: 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明涉及编译器开发和移植技术领域的一种面向编译器移植和优化的耦合寄存器的方法,包括步骤:S1,TV数据结构的扩展;S2,设置和完善访问TV的必要接口;S3,判断是否满足分层结构的限制要求,S4,实现分层结构所需要的算法。针对具有耦合寄存器特性的芯片的编译器移植和优化中,如何在编译器中准确高效描述耦合寄存器信息,同时为指令调和寄存器分配提供支持,是影响编译器性能和可移植性的重要因素之一。本方法基于编译器的中间表达式,可充分,完整地描述寄存器的各种信息,控制实现的开销,同时为编译器的后端优化和寄存器提供支持。本方法可以便捷地开关或扩展耦合寄存器信息,以维护编译器的健壮性和可移植性。
-
公开(公告)号:CN103902273A
公开(公告)日:2014-07-02
申请号:CN201210584770.6
申请日:2012-12-28
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
IPC: G06F9/44
Abstract: 本发明的实施例提供一种无损压缩系统依赖图的方法及装置,涉及计算机领域,能够实现系统依赖图的无损压缩,并降低系统依赖图的规模,从而降低以系统依赖图为基础的切片算法的开销。其方法为:首先提取程序中所有变量之间的等价关系,而后通过该等价关系将程序中所有变量分为不同的等价类,并根据这些等价类为系统依赖图中的节点设置键值,而后根据系统依赖图中的节点的键值压缩系统依赖图。本发明实施例用于对系统依赖图进行压缩。
-
-
-
-
-
-
-
-
-