[发明专利]指针分析方法及装置在审
申请号: | 201310589292.2 | 申请日: | 2013-11-20 |
公开(公告)号: | CN104657257A | 公开(公告)日: | 2015-05-27 |
发明(设计)人: | 陈聪明;霍玮;李丰;冯晓兵 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指针 分析 方法 装置 | ||
1.一种指针分析方法,其特征在于,包括:
读取待分析的多线程程序中的语句信息;
根据所述程序的语句信息对所述程序进行指针分析,获得所述程序的共享信息,所述共享信息包括共享量、指针指向集和访存行为,其中,共享量包括全局共享量和局部共享量;
根据所述程序的共享信息对所述共享量进行补偿分析。
2.根据权利要求1所述的方法,其特征在于,所述根据所述程序的语句信息对所述程序进行指针分析,获得所述程序的共享信息,包括:
根据全局共享判断规则对所述程序进行分析,获得所述程序中的全局共享量;
对所述程序中每个线程进行指针分析,获得每个线程中的指针指向集、局部共享量和与所述共享量对应的访存行为。
3.根据权利要求2所述的方法,其特征在于,所述全局共享判断规则包括:
若变量可以被程序中至少两个线程同时访问,则所述变量为全局共享量。
4.根据权利要求2或3所述的方法,其特征在于,所述对所述程序中每个线程进行指针分析,获得每个线程中的指针指向集、局部共享量和与所述共享量对应的访存行为,包括:
对所述程序中每个线程进行指针分析,获得每个线程中的指针指向集;
根据所述全局共享量、所述指针指向集和局部共享判断规则对每个线程进行分析,获得每个线程中的局部共享量;
根据所述全局共享量、所述局部共享量和所述指针指向集对每个线程进行分析,获得与所述共享量对应的访存行为。
5.根据权利要求4所述的方法,其特征在于,所述局部共享判断规则包括:
若给定线程中变量可以作为所述程序中某个线程的入口参数而被其他线程访问,则所述变量为局部共享量;或者,
若给定线程中变量可以通过被全局共享量间接引用的方式而被其他线程访问,则所述变量为局部共享量;或者,
若给定线程中变量可以通过全局共享量的赋值,使得所述变量的指向集包含所述全局共享量,则所述变量为局部共享量。
6.根据权利要求4或5所述的方法,其特征在于,所述根据所述全局共享量、所述指针指向集和局部共享判断规则对每个线程进行分析,获得每个线程中的局部共享量,包括:
根据所述全局共享量、所述指针指向集和局部共享识别规则,获取每个线程中可能逃逸的局部变量;
根据所述可能逃逸的局部变量和共享传播规则,确定从所述可能逃逸的局部变量中获取的可能被其他线程使用的局部变量为局部共享量。
7.根据权利要求1~6中任一所述的方法,其特征在于,所述根据所述程序的共享信息对每个共享量分别进行补偿分析之前,还包括:
根据所述程序的语句信息生成并行控制流图;
根据所述并行控制流图和所述共享信息生成针对所述程序的共享量访存图SAG;
所述根据所述程序的共享信息对所述共享量进行补偿分析,包括:
根据所述SAG对所述共享量进行补偿分析。
8.根据权利要求1~7中任一所述的方法,其特征在于,所述共享量具有相应的定值点和引用点对;所述根据所述程序的共享信息对所述共享量进行补偿分析,包括:
根据传播判断规则获得所述定值点和引用点对之间可以相互影响的共享量;
将所述定值点和引用点对之间可以相互影响的共享量的所述定值点的指针指向集传播到对应的引用点。
9.根据权利要求1~8中任一所述的方法,其特征在于,所述读取待分析的多线程程序中的语句信息之前,还包括:
接收用户发送的指针分析指令;
所述读取待分析的多线程程序中的语句信息,包括:
根据所述指针分析指令读取所述待分析的多线程程序中的语句信息。
10.根据权利要求1~9中任一项所述的方法,其特征在于,所述根据所述程序的共享信息对所述共享量进行补偿分析之后,还包括:
采用所述补偿分析的结果,对所述程序进行优化处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所;,未经华为技术有限公司;中国科学院计算技术研究所;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310589292.2/1.html,转载请声明来源钻瓜专利网。