Abstract
A/D GRAPHS|A DATA STRUCTURE FORDATA DEPENDENCEANALYSIS INPROGRAMS WITHPOINTERSW. AMME, E. ZEHENDNERComputer Science Department,Friedrich-Schil ler-University,D-07740 Jena, GermanyWedescrib e anewmetho d todetermine datadep endences inprograms withp ointers|a mandatory step in parallelization.The use of A/D graphs for datadep endence analysis promises a signi cant improvement on other known metho ds.We p erform a single-pass data dep endence analysis by solving a monotone dataow system for a class of restricted imp erative languages. Based on an intrapro-cedural analysis with A/D graphs that is optimal with resp ect to static analysis,we develop a metho d to derive a safe approximation of the data dep endences byemploying k-b ounded A/D graphs. Using this metho d we can p erform interpro ce-dural data dep endence analysis with storage quadratic in the numb er of programstatements. Our metho d is fast, uses storage more economical than others, and isable to check the mo dules of a program separately.1Intro duction and state of the artDetermination ofdatadep endencesisamandatory stepwhenrestructuringprograms, and is particularly imp ortant for parallelization:themore precisetheresultsof data dep endenceanalysis, thehigherdegreeof exploitableparallelism.A program statementS2has a data dep endenceon a statemen1if thefollowing four conditions hold [3]:1.Both statements access a common storage cellloc.2.At least one of them writes toloc.3.StatementS2can b e reached after the execution of statemen1.4.There is no third statementS3on the path b etween1and2that alsowrites toloc.Such a data dep endence is called atrue dependenceifS1writes tolocwhereasS2reads fromloc.It is called ananti dependenceif1andwrites toloc.It is called anoutput dependenceif b oth statements write toThere are well-known matured techniques for the data dep endence analysisof programs that are exclusively based on lo ops and storage arrays.Some of1
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have