7
CITED BY 49 201018日金曜日

Pointer 100107093104-phpapp01

Embed Size (px)

Citation preview

Page 1: Pointer 100107093104-phpapp01

CITED BY 49

2010年1月8日金曜日

Page 2: Pointer 100107093104-phpapp01

Type casting allows a program to access an object as if it had a type different from its declared type. This complicates the design of a pointer-analysis algorithm that treats structure fields as separate objects; therefore, some previous pointer-analysis algorithms “collapse” a structure into a single variable. The disadvantage of this approach is that it can lead to very imprecise points-to information. Other algorithms treat each field as a separate object based on its offset and size. While this approach leads to more precise results, the results are not portable because the memory layout of structures is implementation dependent. This paper first describes the complications introduced by type casting, then presents a tunable pointer-analysis framework for handling structures in the presence of casting. Different instances of this framework produce algorithms with different levels of precision, portability, and efficiency.Experimental results from running our implementations of four instances of this framework show that (i) it is important to distinguish fields of structures in pointer analysis, but (ii) making conservative approximations when casting is involved usually does not cost much in terms of time, space, or the precision of the results.

2010年1月8日金曜日

Page 3: Pointer 100107093104-phpapp01

Collapse

2010年1月8日金曜日

Page 4: Pointer 100107093104-phpapp01

Contributions

• identify the problems specific to structures and casting

• a tunable framework for pointer analysis(flow sensitive)

• To evaluate the relative efficacies of different approaches to handling structures in the presence of casting

2010年1月8日金曜日

Page 5: Pointer 100107093104-phpapp01

Average point-to set sizeConsequently, a points-to fact of the form s points-to awould be interpreted as “any field of s may point to anyfield of a “.

2010年1月8日金曜日

Page 6: Pointer 100107093104-phpapp01

Analysis-time

2010年1月8日金曜日

Page 7: Pointer 100107093104-phpapp01

Points-to edges

2010年1月8日金曜日