How to exclude infeasible paths?
First, detect set P of infeasible paths
Second, using P, perform the analysis
Remove infeasible paths from CFG, then apply traditional analysis [Holly & Rosen, TSE’81]
- transformed graph free of detected infeasible paths
- path removal requires exponential path growth
Make analysis aware of infeasible paths [Bodik, Gupta, Soffa, FSE’97]
- demand driven - using branch correlation
- practical: no need for code growth, program modification