Points-to analysis is required as a preliminary step for many code analysis. Different flow insensitive points-to analyses have been proposed in literature. They are extremely appealing with respect to the flow sensitive counterparts because of their high efficiency. Their output, consisting of a set of points-to pairs which hold for the given program, can be integrated with other analyses, such as reaching definitions or call graph computation. In any case, their role is to resolve dereference chains into the referenced locations. In this paper two variants of flow insensitive points-to analysis are considered. The resulting points-to pair are used to determine the locations that are defined or used by every program statement. When a definition or a use exploits a pointer to access the defined or used location, the preliminarly computed points-to pairs allow to find out the accessed locations. The two different variants of points-to analyses are conservative, in that all points-to pairs which hold in the program are assured to be reported, plus possibly come spurious pairs. As a consequence the DEF/USE sets contain all locations actually defined or used plus possibly some spurious locations. The impact of different choices of points-to analyses on DEF/USE sets is discussed in this paper, together with te consequences on the efficiency of the computation
Impact of Different Flow Insensitive Points-to Analysis on DEF/USE Sets
Tonella, Paolo
1999-01-01
Abstract
Points-to analysis is required as a preliminary step for many code analysis. Different flow insensitive points-to analyses have been proposed in literature. They are extremely appealing with respect to the flow sensitive counterparts because of their high efficiency. Their output, consisting of a set of points-to pairs which hold for the given program, can be integrated with other analyses, such as reaching definitions or call graph computation. In any case, their role is to resolve dereference chains into the referenced locations. In this paper two variants of flow insensitive points-to analysis are considered. The resulting points-to pair are used to determine the locations that are defined or used by every program statement. When a definition or a use exploits a pointer to access the defined or used location, the preliminarly computed points-to pairs allow to find out the accessed locations. The two different variants of points-to analyses are conservative, in that all points-to pairs which hold in the program are assured to be reported, plus possibly come spurious pairs. As a consequence the DEF/USE sets contain all locations actually defined or used plus possibly some spurious locations. The impact of different choices of points-to analyses on DEF/USE sets is discussed in this paper, together with te consequences on the efficiency of the computationI documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.