An Improved Program Dependence Graph for Static Slicing Concurrent Programs
Jianyu Xiao · Microelectronics & Computer · 2006
Data structure for static slicing algorithm of concurrent programs was studied. Based on the analysis of the fact that Krinke's slicing algorithm produced imprecise slice for the program structure which has loops embedded with threads, a conclusion was drawn that the reason for the impreciseness was that Krinke's data structure had over coarse definitions of data dependence relations between threads, and the associated algorithm had an unduly loose constraint on the execution paths. An improved threaded program dependence graph was proposed which introduced a new dependence relation of loop-carried data dependence crossing thread boundaries. The algorithm adding loop-carried data dependence relations crossing thread boundaries was given. Examples showed that the slicing algorithm based on the new data structure could restrain the impreciseness of Krinke's.