[gnu.gcc] First Release of the AE Tracing System

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.