[LLVMdev] A way to write new pass by keeping source and build directories separate

Rekha R rekharamapai at nitc.ac.in
Fri Oct 4 09:07:34 PDT 2013


thank you for the info.

Rekha


On Fri, Oct 4, 2013 at 10:22 AM, arrowdodger <6yearold at gmail.com> wrote:

> On Oct 3, 2013 11:47 PM, "Rekha R" <rekharamapai at nitc.ac.in> wrote:
> >
> > Hi,
> >
> > I was trying to write a sample optimization pass in LLVM, by following
> instructions in LLVM doc for Writing a New Pass. But then ran into make
> issues. The issue is with having separate source and build directories. The
> LLVM doc for 'Getting Started' suggests keeping the two separate, but the
> 'Writing a new pass' doc assumes they are merged. Hence the make issue.
> >
> > I did a bit of googling and could not find a desired solution. The
> solutions proposed were to combine the source and build directories.
> >
> > I am happy to say that I could find a solution with keeping source and
> build directories separate, as desired. I thought I could share it with
> newbies like me.
> >
> >   0. Download LLVM source into /llvm-src and build it into /llvm-build
> directories.
> >   1. Write a new pass and Makefile as mentioned in LLVM doc 'Writing a
> new pass'. Assume it is created in /llvm-src/lib/Transforms/NewPass
> directory.
> >   2. Modify the Makefile in /llvm-src/lib/Transforms directory by adding
> NewPass under PARALLEL_DIRS.
> >   3. make in /llvm-build directory.
> >   4. Thats it. If things go fine, newpass.so will be created in
> /llvm-build/Debug+Asserts/lib directory.
> >   5. The new pass can be loaded by modifying the command mentioned in
> the LLVM doc (for Writing a new pass) as
> >
> >
> > opt -load /llvm-build/Debug+Asserts/lib/newpass.so -newpass < hello.bc >
> /dev/null
> >
> > Hope this helps.
> >
> > --
> > Rekha
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
>
> A long ago I've added support for developing passes outside source dir for
> CMake build system. There should be documentation on this.
>



-- 
Rekha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131004/4406b1d4/attachment.html>


More information about the llvm-dev mailing list