Welcome to the Pre-Release of the Automatic Pool Allocator!

Before using the Automatic Pool Allocator, you should read the pre-release
license in LICENSE.TXT.


Automatic Pool Allocation is currently broken on 2.7 due to malloc and
free instructions being removed.  Use the release_26 branch of llvm
and poolalloc for a working poolalloc module.

DSA is undergoing significant changes and may not be entirely stable or 
correct.  See lib/DSA/README.

Windows does not support loadable modules in llvm, so poolalloc must
be linked into opt.

To build the Automatic Pool Allocator, you will need to have installed and
compiled LLVM.

Once that is done, you can build the Automatic Pool Allocator using the
following steps:

	1. Run the configure script to tell the build system LLVM has been
	   installed.  Use the --with-llvmsrc=<dir> option to specify the
	   location of the LLVM source code, and use the --with-llvmobj=<dir>
	   option to specify the location of the LLVM object code.

	   For example, if the user joe with home directory of /usr/home/joe
	   has the LLVM source in /usr/home/joe/llvm, and it was configured
	   with ./configure --with-objroot=/tmp, then the Automatic Pool
	   Allocator should be configured with:

	   > ./configure --with-llvmsrc=/usr/home/joe/llvm \

	2. Using GNU Make (sometimes called gmake), type "make" to build the
	   Automatic Pool Allocator:

	   > make

	3. To install the pool allocator bytecode libraries into the C front
	   end, use make with the install target:

	   > make install

To use the Automatic Pool Allocator optimization pass, you will need to
explicitly load it into the opt program:

	> opt -load <path to pool allocator> -poolalloc <other opt options>

To link and run programs with the pool allocator, you will need to have the
poolalloc bytecode library in your LLVM_LIB_SEARCH_PATH.  If you have followed
the directions in the "Getting Started Guide" for LLVM, your
LLVM_LIB_SEARCH_PATH environment variable already points to the C front end's
directory of bytecode libraries.  Just use the install target (mentioned above)
of make to install the poolalloc library into that directory.

To link a bytecode file once it has been optimized, you can do the following:

	> llvmgcc -o <output file> <optimized bytecode file> -lpoolalloc

...where llvmgcc is an alias to the GCC C front end.

This will generate a bytecode file that can be executed.

Please see our website for information on how to report bugs

The LLVM Developer's Mailing List provides announcements and general discussion
about LLVM.  The list is low volume.  You can subscribe to it at