Show simple item record

dc.contributor.advisorGovindarajan, R
dc.contributor.authorThakur, Aditya
dc.date.accessioned2010-08-25T05:24:08Z
dc.date.accessioned2018-07-31T05:08:50Z
dc.date.available2010-08-25T05:24:08Z
dc.date.available2018-07-31T05:08:50Z
dc.date.issued2010-08-25
dc.date.submitted2008
dc.identifier.urihttps://etd.iisc.ac.in/handle/2005/836
dc.description.abstractData-flow analysis is an integral part of any aggressive optimizing compiler. We propose a framework for improving the precision of data-flow analysis in the presence of complex control-flow. We initially perform data-flow analysis to determine those control-flow merges which cause the loss in data-flow analysis precision. The control-flow graph of the program is then restructured such that performing data-flow analysis on the resulting restructured graph gives more precise results. The proposed framework is both simple, involving the familiar notion of product automata, and also general, since it is applicable to any forward or backward data-flow analysis. Apart from proving that our restructuring process is correct, we also show that restructuring is effective in that it necessarily leads to more optimization opportunities. Furthermore, the framework handles the trade-off between the increase in data-flow precision and the code size increase inherent in the restructuring. We show that determining an optimal restructuring is NP-hard, and propose and evaluate a greedy heuristic. The framework has been implemented in the Scale research compiler, and instantiated for the specific problems of Constant Propagation and Liveness analysis. On the SPECINT 2000 benchmark suite we observe an average speedup of 4% in the running times over Wegman-Zadeck conditional constant propagation algorithm and 2% over a purely path profile guided approach for Constant Propagation. For the problem of Liveness analysis, we see an average speedup of 0.8% in the running times over the baseline implementation.en_US
dc.language.isoen_USen_US
dc.relation.ispartofseriesG22613en_US
dc.subjectCompilersen_US
dc.subjectData-flow Analysisen_US
dc.subjectControl-flow Graphsen_US
dc.subjectAutomata Theoryen_US
dc.subjectDestructive Mergeen_US
dc.subjectScale Compileren_US
dc.subjectSplit Approachen_US
dc.subjectComplex Control-flowen_US
dc.subject.classificationComputer Scienceen_US
dc.titleComprehensive Path-sensitive Data-flow Analysisen_US
dc.typeThesisen_US
dc.degree.nameMSc Enggen_US
dc.degree.levelMastersen_US
dc.degree.disciplineFaculty of Engineeringen_US


Files in this item

This item appears in the following Collection(s)

Show simple item record