[LLVMdev] Maintaining pass code outside of the LLVM directory
criswell at uiuc.edu
Mon Mar 22 23:53:14 CDT 2010
You can always use the LLVM project infrastructure (documented at
http://llvm.org/docs/Projects.html). Numerous projects that use LLVM
(such as poolalloc and SAFECode) use this infrastructure (or improved
versions of it; the document may be a little dated). They have their
own distinct source trees that can live outside of LLVM's source tree,
but they reuse LLVM's build system. Your source code and Makefiles
should require no modification; you'll simply be rearranging the
directories and adding a configure script.
If you have any questions or have any problems, please email llvmdev.
To start your project, I would recommend using either the poolalloc or
SAFECode projects (see http://safecode.cs.illinois.edu for directions on
getting SAFECode out of SVN) as a template; the projects/sample project
in the LLVM source tree may be outdated.
-- John T.
Trevor Harmon wrote:
> I'm developing an LLVM pass and am running into code maintenance
> issues. Specifically, the "Writing an LLVM Pass" document assumes that
> the pass directory is placed somewhere in the LLVM source base (e.g.
> lib/Transforms), but this is a problem for me because:
> 1) Testing the pass against two different LLVM versions is difficult.
> For example, testing with the LLVM 2.6 release and the LLVM 2.7
> prerelease requires either moving the pass directory back and forth or
> maintaining two different copies of the same pass, one in each LLVM
> source base. Neither option is much fun.
> 2) Mixing custom code with the LLVM source base can lead to dangerous
> mistakes. For example, I had added some extensive debugging code to
> the LLVM source, and I wanted to start over with a clean build, so I
> did "rm -rf" on the LLVM directory. Of course this wiped out my pass
> code as well! (Luckily I had checked in the code to a personal SVN
> I really need a way to keep my pass code separate from the LLVM source
> base. I tried to get clever by creating a soft link from my pass
> directory to lib/Transforms, but this doesn't work because the $PWD is
> relative to the link's source directory, even when I cd into the
> link's target directory. This screws up the LEVEL variable in the
> Makefile and causes build errors. I tried to adjust LEVEL to account
> for the new location but that still didn't work.
> Any suggestions? Thanks,
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the LLVMdev