Xref: utzoo comp.arch:13938 comp.compilers:797 comp.lang.misc:4101 gnu.gcc:1350 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!snorkelwacker!spdcc!ima!esegue!compilers-sender From: larus@primost.cs.wisc.edu (James Larus) Newsgroups: comp.arch,comp.compilers,comp.lang.misc,gnu.gcc Subject: First Release of the AE Tracing System Keywords: AE, program tracing, address traces, compilers, GNU, gcc Message-ID: <1990Feb15.064114.805@esegue.segue.boston.ma.us> Date: 15 Feb 90 06:41:14 GMT Sender: compilers-sender@esegue.segue.boston.ma.us Reply-To: larus@primost.cs.wisc.edu (James Larus) Organization: University of Wisconsin Computer Sciences Dept. Lines: 83 Approved: compilers@esegue.segue.boston.ma.us 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.