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

Rekha R rekharamapai at nitc.ac.in
Thu Oct 3 12:45:44 PDT 2013


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131004/7f55babb/attachment.html>


More information about the llvm-dev mailing list