Performance visualizations using XML representations

The intermediate representation (IR) forms the information exchanged among different passes of program compilation. The intermediate format proposed for extensibility and persistence is written in XML. In this way, the program transformations that were internal to the compiler become visible. The hierarchical structure of XML makes a natural representation for the abstract syntax tree (AST). A compiler can parse the program source into an IR, then output it as an XML document. Separated by orthogonal namespaces, other IRs are also presented in the same XML document, gathering program information such as dependence vectors, transforming matrices, iteration spaces dependence graphs and cache reuse distances. This XML document can be exchanged between the compiler and program visualizers for parallelism and locality.

[1]  Yijun Yu,et al.  Loop Parallelization using the 3D Iteration Space Visualizer , 2001, J. Vis. Lang. Comput..

[2]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[3]  Steven W. K. Tjiang,et al.  SUIF: an infrastructure for research on parallelizing and optimizing compilers , 1994, SIGP.

[4]  Kristof Beyls,et al.  Reuse Distance as a Metric for Cache Behavior. , 2001 .

[5]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[6]  P. Klint,et al.  Efficient annotated terms , 2000 .

[7]  Emden R. Gansner,et al.  A Technique for Drawing Directed Graphs , 1993, IEEE Trans. Software Eng..

[8]  Yijun Yu,et al.  Visualizing the impact of the cache on program execution , 2001, Proceedings Fifth International Conference on Information Visualisation.

[9]  Georg Sander,et al.  Graph Layout through the VCG Tool , 1994, GD.

[10]  Andrew W. Appel,et al.  The Zephyr Abstract Syntax Description Language , 1997, DSL.

[11]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.