larus@primost.cs.wisc.edu (James Larus) (03/19/90)
Version 2.0 of the AE program profiling system is available for anonymous ftp from primost.cs.wisc.edu. This version fixes a number of small bugs that slightly reduced the accuracy of the instruction trace on Sun 4's and a couple of major bugs which caused AE to die on some programs. In addition, I've added a couple of new features including seperate compilation of schema files and an Applications subdirectory, which contains programs to produce complete memory traces or instruction traces. The (new) man pages describe the new arguments to aec. If you don't know about AE, a short description is below. /Jim larus@cs.wisc.edu (608) 262-9519 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.