Region-Based selective flow-sensitive pointer analysis

被引:22
作者
Ye, Sen [1 ]
Sui, Yulei [1 ]
Xue, Jingling [1 ]
机构
[1] Programming Languages and Compilers Group, School of Computer Science and Engineering, UNSW, Kensington
来源
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | 2014年 / 8723卷
关键词
Static analysis;
D O I
10.1007/978-3-319-10936-7_20
中图分类号
学科分类号
摘要
We introduce a new region-based SELective Flow-Sensitive (Selfs) approach to inter-procedural pointer analysis for C that operates on the regions partitioned from a program. Flow-sensitivity is maintained between the regions but not inside, making traditional flow-insensitive and flow-sensitive as well as recent sparse flow-sensitive analyses all special instances of our Selfs framework. By separating region partitioning as an independent concern from the rest of the pointer analysis, Selfs facilitates the development of flow-sensitive variations with desired efficiency and precision tradeoffs by reusing existing pointer resolution algorithms. We also introduce a new unification-based approach for region partitioning to demonstrate the generality and flexibility of our Selfs framework, as evaluated using SPEC2000/2006 benchmarks in LLVM. © Springer International Publishing Switzerland 2014.
引用
收藏
页码:319 / 336
页数:17
相关论文
共 37 条
[1]  
Acharya M., Robinson B., Practical change impact analysis based on static program slicing for industrial software systems, ICSE 2011, pp. 746-755, (2011)
[2]  
Andersen L.O., Program analysis and specialization for the C programming language, (1994)
[3]  
Cai Q., Gao L., Xue J., Region-based partial dead code elimination on predicated code, CC 2004. LNCS, 2985, pp. 150-166, (2004)
[4]  
Ceccarelli M., Cerulo L., Canfora G., Di Penta M., In: ICSE 2010, pp. 163-166, (2010)
[5]  
Choi J.-D., Cytron R., Ferrante J., Automatic construction of sparse data flow evaluation graphs, POPL 1991, pp. 55-66, (1991)
[6]  
Choi J.-D., Cytron R., Ferrante J., On the efficient engineering of ambitious program analysis, IEEE Transactions on Software Engineering, 20, 2, pp. 105-114, (1994)
[7]  
Chow F., Chan S., Liu S., Lo R., Streich M., Effective representation of aliases and indirect memory operations in SSA form, CC 1996. LNCS, 1060, pp. 253-267, (1996)
[8]  
Cytron R., Ferrante J., Rosen B., Wegman M., Zadeck F., Efficiently computing static single assignment form and the control dependence graph, ACMTransactions on Programming Languages and Systems, 13, 4, pp. 451-490, (1991)
[9]  
Das M., Unification-based pointer analysis with directional assignments, PLDI 2000, pp. 35-46, (2000)
[10]  
Das M., Lerner S., Seigle M., ESP: Path-sensitive program verification in polynomial time, PLDI 2002, pp. 57-68, (2002)