[发明专利]一种基于推测多线程的汇编级过程间指针分析方法有效
申请号: | 201810785251.3 | 申请日: | 2018-07-17 |
公开(公告)号: | CN108932137B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 李美蓉;赵银亮;程传旭;张少应;陈庆荣;许雯 | 申请(专利权)人: | 西安航空学院 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710077 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 推测 多线程 汇编 过程 指针 分析 方法 | ||
1.一种基于推测多线程的汇编级过程间指针分析方法,其特征在于,包括以下步骤:
步骤1,通过对编译后端生成的MIPS汇编指令的遍历,抽取过程调用指令,根据调用过程和被调过程间的关系,构建过程调用图,过程调用图中结点表示过程,过程包括调用过程和被调过程,边表示过程间的调用和被调用关系;
步骤2,对过程调用图中每个结点进行路径剖析,收集所有的执行路径;构建基于概率的路径剖析代价模型,对所有的执行路径进行代价评估,选择代价最大的一个路径作为候选推测路径加入到工作集中,直至过程调用图中所有结点的候选推测路径都加入到工作集中;
步骤3,自底向上遍历过程调用图中每个结点,从工作集中选择结点对应的推测路径,采用抽象位置集和谓词表示推测路径上内存指向变量的抽象位置和指令类型,构建指向关系树来指导过程内的指向分析,利用过程内的指向分析结果来构建基于过程的规则转换库,形式化后存储在过程调用图的相关结点中;
步骤4,自顶向下对过程调用图中每个结点进行过程间的指向分析,当指向分析到过程调用指令时,结合当前调用过程的上下文指向关系,利用规则转换库中形式化后的指向分析结果,对被调过程进行指向关系的映射和反映射,计算并收集过程间的副作用;
步骤5,根据过程间指向分析以及收集到的过程间的副作用计算结果,进行过程间的数据流分析,确定过程间上下文指向关系中内存指向变量的数据依赖位置,并将得到的数据依赖位置作为推测多线程数据依赖模型的输入,计算推测多线程所需的数据依赖个数和数据依赖距离;
步骤6,根据推测多线程数据依赖模型计算的数据依赖个数和数据依赖距离结果,精确化线程的划分位置,生成多个推测的线程。
2.根据权利要求1所述的一种基于推测多线程的汇编级过程间指针分析方法,其特征在于,所述步骤2中基于概率的路径剖析代价模型通过以下步骤得到:
步骤2.1、构建每个过程的控制流图,控制流图中每个分支结点仅包含两个后继结点:Taken分支和Fall分支;每个循环结点则也包括两个后继结点:进入循环分支和退出循环分支;
步骤2.2、当路径剖析到分支结点或循环结点时,首先计算后继结点对应的最近公共后向支配结点确定分支范围,然后利用程序剖析技术,得到每个分支结点中Taken分支和Fall分支的执行次数,循环结点的个数和循环迭代次数,以及分支中基本块的个数和相应内存读写指令的分布情况,构建基于概率的路径剖析代价模型,具体如下:
A)若当前所执行的结点属于分支结点时,则采用公式Pathnon_loop=Ctaken-(1+ζ)×Cfall,确定所要进一步分析的推测路径,若Pathnon_loop≥0,分析Taken分支上的所有循环和非循环指令;若Pathnon_loop<0,则分析Fall分支上的所有循环和非循环指令;
B)若当前所执行的结点属于循环结点时,则采用来确定所要进一步分析的推测路径,若Pathloop≥0,分析循环体内所有嵌套的循环指令和非嵌套的循环指令;若Pathloop<0,则分析跳出循环体到循环后向支配结点的所有嵌套的循环指令和非嵌套的循环指令,
其中,Pathnon_loop表示分支结点选择代价较大的候选推测路径时的计算结果,Pathloop表示循环结点选择代价较大的候选推测路径时的计算结果;ζ为调节系数,Niter_taken和Niter_fall分别表示进入循环体的迭代次数和跳出循环体的迭代次数,λi和λj分别表示动态矩阵,用于模拟和控制循环迭代执行的收敛过程,动态矩阵中的元素个数和每个元素的取值分别由循环迭代总次数以及每次循环迭代所占比值得到;Ctaken和Cfall分别表示单个Taken分支和Fall分支的代价计算结果,两者通过以下公式计算得到:
其中,prob表示选择Taken分支执行的概率,Ntotal_loop和Ntotal_non_loop分别表示所选择分支路径上的循环个数和非循环中基本块的个数,而Rset和Wset分别表示循环和非循环中内存读写指令的集合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安航空学院,未经西安航空学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810785251.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:交叉点自旋累积转矩磁阻式随机存取存储器
- 下一篇:行人重识别方法及装置