摘要
锁别名分析能够得到锁指针变量的指向信息,有效的锁别名分析可以更好地辅助数据竞争分析和死锁分析.现有锁别名分析往往采用保守的方式处理,进而影响分析结果的准确性.针对这一问题,提出了一种锁别名分析方法,该方法首先使用GCC插件获取SSA形式的中间代码,然后对中间代码进行预处理以获得与锁、函数指针操作相关的语句,最后对预处理后的程序使用本文提出的FP_LOCK算法进行准确的流敏感、上下文敏感分析.实验结果表明该方法能精确地确定锁别名,并且经过预处理后的FP_LOCK算法对分析大程序平均有9.95倍的加速比.
Lock alias analysis can obtain the precise lock pointer information. Efficient lock alias analysis can make a good contribution to data races analysis and deadlock analysis. However, existing lock alias analyses often use a conservative approach, which impacts the accuracy of analysis. This paper proposes a lock alias analysis method. This method firstly gains SSA-form intermediate code by a GCC plugin. Then it preprocesses the intermediate code to obtain the statements related to function pointer and lock operation. Based on this we present the flow-sensitive and context-sensitive function pointer and lock analysis algorithm(referred as FP_LOCK algorithm). Experimental results show that this method has well precision and advances 9.95 times on average compared with the original algorithm.
出处
《计算机系统应用》
2016年第2期212-218,共7页
Computer Systems & Applications
基金
安徽省自然科学基金(1408085MKL06)
高等学校学科创新引智计划(B07033)