Software validation via scalable path-sensitive value flow analysis

N Dor, S Adams, M Das, Z Yang - ACM SIGSOFT Software Engineering …, 2004 - dl.acm.org
N Dor, S Adams, M Das, Z Yang
ACM SIGSOFT Software Engineering Notes, 2004dl.acm.org
In this paper, we present a new algorithm for tracking the flow of values through a program.
Our algorithm represents a substantial improvement over the state of the art. Previously
described value flow analyses that are control-flow sensitive do not scale well, nor do they
eliminate value flow information from infeasible execution paths (ie, they are path-
insensitive). Our algorithm scales to large programs, and it is path-sensitive. The efficiency of
our algorithm arises from three insights: The value flow problem can be" bit-vectorized" by …
In this paper, we present a new algorithm for tracking the flow of values through a program. Our algorithm represents a substantial improvement over the state of the art. Previously described value flow analyses that are control-flow sensitive do not scale well, nor do they eliminate value flow information from infeasible execution paths (i.e., they are path-insensitive). Our algorithm scales to large programs, and it is path-sensitive.The efficiency of our algorithm arises from three insights: The value flow problem can be "bit-vectorized" by tracking the flow of one value at a time; dataflow facts from different execution paths with the same value flow information can be merged; and information about complex aliasing that affects value flow can be plugged in from a different analysis.We have incorporated our analysis in ESP, a software validation tool. We have used ESP to validate the Windows operating system kernel (a million lines of code) against an important security property. This experience suggests that our algorithm scales to large programs, and is accurate enough to trace the flow of values in real code.
ACM Digital Library