Analysis Tools

Code instrumentation is a powerful mechanism for understanding program behavior. Unfortunately, code instrumentation is extremely difficult, and therefore has been mostly relegated to building special purpose tools for use on standard industry benchmark suites. ATOM (Analysis Tools with OM) provides a very flexible and efficient code instrumentation interface that allows powerful, high performance program analysis tools to be built with very little effort. This paper illustrates this flexibility by building five complete tools that span the interests of application programmers, computer architects, and compiler writers. This flexibility does not come at the expense of performance. Because ATOM uses procedure calls as the interface between the application and the analysis routines, the performance of each tool is similar to or greatly exceeds the best known hand-crafted implementations.

[1]  Richard L. Sites,et al.  Alpha Architecture Reference Manual , 1995 .

[2]  Jeffrey C. Mogul Observing TCP dynamics in real networks , 1992, SIGCOMM 1992.

[3]  Jeffrey C. Mogul Recovery in Spritely NFS , 1994, Comput. Syst..

[4]  James R. Larus,et al.  Using Tracing and Dynamic Slicing to Tune Compilers , 1993 .

[5]  Susan J. Eggers,et al.  Techniques for efficient inline tracing on a shared-memory multiprocessor , 1990, SIGMETRICS '90.

[6]  Jeremy Dion,et al.  Fast Printed Circuit Board Routing , 1987, 24th ACM/IEEE Design Automation Conference.

[7]  Robert O. Hastings,et al.  Fast detection of memory leaks and access errors , 1991 .

[8]  Jeffrey C. Mogul,et al.  Fragmentation considered harmful , 1987, SIGCOMM '87.

[9]  David W. Wall,et al.  Generation and analysis of very long address traces , 1990, ISCA '90.

[10]  David W. Wall,et al.  Limits of instruction-level parallelism , 1991, ASPLOS IV.

[11]  Norman P. Jouppi Cache write policies and performance , 1993, ISCA '93.

[12]  Norman P. Jouppi,et al.  A simulation based study of TLB performance , 1992, ISCA '92.

[13]  Robert N. Mayo,et al.  Boolean matching for full-custom ECL gates , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[14]  James R. Larus,et al.  Rewriting executable files to measure program behavior , 1994, Softw. Pract. Exp..

[15]  W. R. Hamburgen,et al.  Precise robotic paste dot dispensing , 1989, Proceedings., 39th Electronic Components Conference.

[16]  Jeffrey C. Mogul Network locality at the scale of processes , 1991, SIGCOMM 1991.

[17]  David W. Wall,et al.  Systems for Late Code Modification , 1991, Code Generation.

[18]  Paul John Asente,et al.  Editing graphical objects using procedural representations , 1988 .

[19]  R. BoggsD.,et al.  Measured capacity of an Ethernet , 1995 .

[20]  R. Acevedo,et al.  Research report , 1967, Revista odontologica de Puerto Rico.

[21]  Robert N. Mayo,et al.  Boolean matching for full-custom ECL gates , 1993, ICCAD '93.

[22]  John L. Hennessy,et al.  The accuracy of trace-driven simulations of multiprocessors , 1993, SIGMETRICS '93.

[23]  David W. Wall,et al.  A practical system fljr intermodule code optimization at link-time , 1993 .

[24]  David W. Wall,et al.  Global register allocation at link time , 1986, SIGPLAN '86.

[25]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[26]  William R. Hamburgen,et al.  Optimal Finned Heat Sinks , 1986 .

[27]  Amitabh Srivastava,et al.  Unreachable procedures in object-oriented programming , 1992, LOPL.

[28]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[29]  W. Hamburgen,et al.  Packaging a 150-W bipolar ECL microprocessor , 1992, 1992 Proceedings 42nd Electronic Components & Technology Conference.

[30]  Norman P. Jouppi,et al.  Complexity/performance tradeoffs with non-blocking loads , 1994, ISCA '94.

[31]  Eric A. Brewer,et al.  PROTEUS: a high-performance parallel-architecture simulator , 1992, SIGMETRICS '92/PERFORMANCE '92.

[32]  Jeffrey C. Mogul,et al.  Observing TCP dynamics in real networks , 1992, SIGCOMM '92.

[33]  David W. Wall,et al.  Link-Time Code Modification , 1989 .

[34]  Robert Giegerich,et al.  Code Generation — Concepts, Tools, Techniques , 1992, Workshops in Computing.

[35]  R. L. Sites,et al.  ATUM: a new technique for capturing address traces using microcode , 1986, ISCA '86.

[36]  David W. Wall,et al.  Link-time optimization of address calculation on a 64-bit architecture , 1994, PLDI '94.

[37]  Jeffrey C. Mogul,et al.  A Better Update Policy , 1994, USENIX Summer.

[38]  David W. Wall Predicting program behavior using real or estimated profiles , 1991, PLDI '91.

[39]  David Keppel,et al.  Shade: a fast instruction-set simulator for execution profiling , 1994, SIGMETRICS.

[40]  Scott McFarling,et al.  Procedure merging with instruction caches , 1991, PLDI '91.

[41]  Norman P. Jouppi,et al.  Tradeoffs in two-level on-chip caching , 1994, ISCA '94.

[42]  C MogulJeffrey Network locality at the scale of processes , 1992 .