larus@primost.cs.wisc.edu (James Larus) (02/15/90)
What is AE? =========== AE is a system for efficiently tracing events during the execution of C programs. It incorporates several new ideas that greatly reduce the overhead of collecting and storing these trace. For example, AE can collect full address traces and only slow the measured program by a factor of 2-4 times. In addition, the resulting trace files are compacted 10-50 times (or 50-600 times after they are compress'ed) with respect to the full trace file. AE consists of a small addition to the GNU C compiler (GCC) and an auxiliary compiler. The modified version of GCC produces code to record some events when the compiled program runs and generates a description of the program known as a schema. The other compiler, AEC, translates schemas into C programs that can read the condensed trace record and generate a full address trace. AE has successfully compiled large programs on a DECStation 3100 and Sun 4. It should work properly for other computers that use the MIPS or SPARC processors. In addition, AE is parameterized in a manner similar to GCC and should easily be retargetable to any processor for which GCC produces code. AE currently produces a full address trace of a program and identifies instructions that begin or end program loops and loop iterations. It could easily be extended to identify other interesting program events. Documentation ============= AE is documented by a University of Wisconsin Computer Sciences Department Technical Report #912 entitled "Abstract Execution: A Technique for Efficiently Tracing Programs." The postscript version of this report is available for anonymous ftp from primost.cs.wisc.edu in the file ~ftp/pub/ae-tr.ps.Z. If you cannot print postscript, a printed version of this report is available for free from: Technical Report Librarian Computer Sciences Department 1210 West Dayton Street University of Wisconsin Madison, WI 53706 (608) 262-6616 Code ==== The patches to GCC and the code for AEC are available for anonymous ftp from primost.cs.wisc.edu (128.105.8.17) in the file ~ftp/pub/ae.tar.Z. The file about 300K. The patches have been tested with GCC versions 1.36 and 1.37. They would probably work with earlier versions, but I can't guarantee it. If you cannot ftp this file, then either copy AE from another site or contact me. I will make tapes for an exorbitant amount of money. If you obtain a copy of AE and wish to be informed of future updates and bug fixes, send your electronic mail address to: larus@cs.wisc.edu. Copyright ========= AE is copyrighted by me and distributed under the terms of the GNU General Public License. James Larus Computer Sciences Department 1210 West Dayton Street University of Wisconsin Madison, WI 53706 larus@cs.wisc.edu (608) 262-9519 -- Send compilers articles to compilers@esegue.segue.boston.ma.us {spdcc | ima | lotus}!esegue. Meta-mail to compilers-request@esegue. Please send responses to the author of the message, not the poster.