本发明专利技术提供一种程序分析信息并行提取方法及装置。该方法包括:根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式;根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本;根据并行加速硬件的内存信息和所述IR内容文本的大小,确定线程调度策略;根据预设的信息特征类别以及所述线程调度策略,对所述IR内容文本中的程序分析信息进行并行提取,得到与所述信息特征类别对应的程序分析信息。本发明专利技术实施例提取效率较高。
【技术实现步骤摘要】
程序分析信息并行提取方法及装置
本专利技术涉及虚拟机
,尤其涉及一种程序分析信息并行提取方法及装置。
技术介绍
低层虚拟机(LowLevelVirtualMachine,简称LLVM)是一个开源的编译框架,可将高级语言编写的程序转化为其自定义的中间表示(IntermediateRepresentation,简称IR)。IR以文件形式保存,其中包含了大量的程序分析信息,包括数据流分析信息、控制流分析信息、函数调用分析信息、程序依赖分析信息等。程序分析信息在包含程序优化和错误检测等在内的众多工作领域有着重要和广泛的应用。现有技术中对IR文件中的程序分析信息进行提取时,主要采取的是串行迭代提取方式,针对某一种具体的提取需求实施提取。即以IR文件内容文本为输入,将具体的提取需求表达为模式,然后在IR文件内容文本中逐行执行字符串模式匹配的算法。具体表现为采用循环处理的方式依次处理给定IR文件文本内容的第一行至最后一行,循环的每一次执行(迭代)提取出一部分子串,每一次提取对应一个具体的提取需求。对于大规模应用程序所产生的海量IR内容文本,逐行的串行处理方式效率低下,而且对于不同提取需求需要多次执行迭代提取过程,会产生许多不必要的重复。
技术实现思路
本专利技术提供一种程序分析信息并行提取方法及装置,以解决逐行的串行处理方式效率低下的问题。第一方面,本专利技术提供一种程序分析信息并行提取方法,包括:根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式;根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本;根据并行加速硬件的内存信息和所述IR内容文本的大小,确定线程调度策略;根据预设的信息特征类别以及所述线程调度策略,对所述IR内容文本中的程序分析信息进行并行提取,得到与所述信息特征类别对应的程序分析信息。第二方面,本专利技术提供一种程序分析信息并行提取装置,包括:预处理模块,用于根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式;所述预处理模块,还用于根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本;并行提取主模块,用于根据并行加速硬件的内存信息和所述IR内容文本的大小,确定线程调度策略;所述并行提取主模块,用于根据预设的信息特征类别以及所述线程调度策略,对所述IR内容文本中的程序分析信息进行并行提取,得到与所述信息特征类别对应的程序分析信息。本专利技术提供的程序分析信息并行提取方法及装置,包括:根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式;根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本;根据并行加速硬件的内存信息和所述IR内容文本的大小,确定线程调度策略;根据预设的信息特征类别以及所述线程调度策略,对所述IR内容文本中的程序分析信息进行并行提取,得到与所述信息特征类别对应的程序分析信息,由于预先对IR文件进行了信息过滤,减少了后续提取的数据量,进一步的,对过滤后的信息进行并行提取,提取效率较高,而且针对每个信息特征类别进行提取,减少了重复信息。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。图1是本专利技术提供的程序分析信息并行提取方法一实施例的流程示意图;图2是本专利技术提供的并程序分析信息并行提取方法一实施例的架构示意图;图3是本专利技术提供的程序分析信息并行提取方法一实施例的并行存储示意图;图4是本专利技术提供的程序分析信息并行提取方法一实施例的控制流类程序分析信息分类示意图;图5是本专利技术提供的程序分析信息并行提取装置一实施例的结构示意图。通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的设备的例子。本专利技术的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。首先对本专利技术所涉及的名词进行解释:程序分析:指对计算机程序行为进行自动分析的过程,主要包括静态分析和动态分析两类。数据流分析:数据流分析是一种程序分析技术,通过从程序代码中收集程序的语义信息,并通过代数方法在编译时确定变量的定义和使用情况。控制流分析:产生程序的有向控制流图,其中节点表示基本代码块,节点间的有向边代表控制流路径,反向边代表可能存在的循环。函数调用分析:分析程序中的函数调用关系,可生成函数调用图,其中节点表示函数,有向边表示函数之间的调用。程序依赖分析:程序中的依赖主要分为数据依赖和控制依赖两大类。本专利技术实施例中的方法可以应用于如图2所示的场景中,图2中由四个主要部分组成:IR原始信息预处理模块(PRE_PROCESS)、并行提取存储模块(PAR_STORE)、并行提取主模块(PAR_EXTRACT)以及提取信息重组模块(INF_REFORM)。其中,PRE_PROCESS模块负责IR原始信息的读取、程序分析信息的特征分析以及IR原始信息的初步筛选工作;PAR_STORE模块为整个程序分析信息的并行提取过程提供存储支持;PAR_EXTRACT模块按照一组调度策略实施程序分析信息的并行提取;INF_REFORM模块根据不同的应用需求对已提取的程序分析信息进行重组安排,例如根据输入的重组需求和重组规则,得到对应的重组输出。图1是本专利技术提供的程序分析信息并行提取方法一实施例的流程示意图。如图1所示,本实施例提供的程序分析信息并行提取方法,包括:步骤101、根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式。步骤102、根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本。具体的,步骤101、步骤102可以采用PRE_PROCESS模块实现,目的是为了极大程度地减小待提取程序分析信息的范围,首先以原始IR文件为输入,执行特定类别程序分析信息特征模式的提取,即根据提取需求,提取特征模式,也即不同的提取需求对应不同类别的特征模式。并以此为基础进行特征模式指导的非特征信息过滤,进而去除那些与提取需求无关的IR文件中的内容信息。以函数调用及控制流信息提取需求为例,在实施控制流类程序分析信息的提取过程中,特征模式可归纳为:PatternCFG={entry,funcname_entry,label,call},即包括函数名、基本块名、函数调用指令(call)、跳转指令(label)等;而在函数本文档来自技高网...
【技术保护点】
一种程序分析信息并行提取方法,其特征在于,包括:根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式;根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本;根据并行加速硬件的内存信息和所述IR内容文本的大小,确定线程调度策略;根据预设的信息特征类别以及所述线程调度策略,对所述IR内容文本中的程序分析信息进行并行提取,得到与所述信息特征类别对应的程序分析信息。
【技术特征摘要】
1.一种程序分析信息并行提取方法,其特征在于,包括:根据输入的中间表示IR文件以及提取需求,提取程序分析信息的特征模式;根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本;根据并行加速硬件的内存信息和所述IR内容文本的大小,确定线程调度策略;根据预设的信息特征类别以及所述线程调度策略,对所述IR内容文本中的程序分析信息进行并行提取,得到与所述信息特征类别对应的程序分析信息。2.根据权利要求1所述的方法,其特征在于,根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤之前,还包括:将所述IR文件中的内容文本进行分割,得到至少一个信息串;所述信息串包括以下至少一项:函数定义、函数名称、基本块节点或终止操作;将所述信息串按照在所述IR文件中的内容文本中的排列顺序依次存储在第一二维数组中;所述第一二维数组的长度为所述至少一个信息串中信息串的最大长度;所述第一二维数组的宽度为所述至少一个信息串的个数。3.根据权利要求1或2所述的方法,其特征在于,若所述提取需求为对控制流类程序分析信息的提取,则所述特征模式包括函数名、基本块名、函数调用指令和跳转指令;若所述提取需求为对函数调用类程序分析信息的提取,则所述特征模式包括函数名、函数定义指令和函数调用指令。4.根据权利要求2所述的方法,其特征在于,根据所述程序分析信息的特征模式,对所述IR文件中的内容文本进行非特征信息过滤,具体包括:根据所述特征模式生成过滤模板;根据所述过滤模板对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本。5.根据权利要求4所述的方法,其特征在于,根据所述过滤模板对所述IR文件中的内容文本进行非特征信息过滤,得到过滤后的IR内容文本,具体包括:确定所述IR文件中的内容文本中的信息串与所述过滤模板是否匹配;若是,则将所述信息串按照所述排列顺序依次存储在第二二维数组中,得到过滤后的IR内容文本的信息串;所述第二二维数组的长度为所述过滤后的IR内容文本的信息串中信息串的最大长度;所述第二二...
【专利技术属性】
技术研发人员:衷璐洁,马冬冬,
申请(专利权)人:首都师范大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。