[LLVMdev] Re: Question about modifying LLVM

Chris Lattner sabre at nondot.org
Sun Apr 30 20:35:43 PDT 2006

On Sun, 30 Apr 2006, Fernando Magno Quintao Pereira wrote:
>    I am trying to use LLVM to implement one register allocation 
> algorithm. I think I understand the code, and I've started my 
> implementation. But I am having a problem, mostly due to my ignorance of 
> C++. I am basically modifying the code of 
> llvm/lib/CodeGen/RegAllocLocal.cpp. But if I type 'gmake' in that 
> directory, the changes are not reflected in the llc tool, even though 
> the LLVMCodeGen.o library is updated. In order to see my changes,

You need to relink llc to see the changes.

> what I am doing is to go to llvm/ , and then to 'gmake clean' 
> everything, and then to call 'gmake' again, what takes very long time.

Yup, that would take a long time :)

> So, could you explain me how to see my changes reflected in 'llc' 
> without having to recompile everything? I am sorry for sending you such 
> silly question, and if you don't have time to answer, I will try to 
> figure it out by myself.

The easiest thing to do is just do a 'make' from the top-level of the 
tree.  You should never have to do 'make clean'.  In this case, make will 
recurse into lib/CodeGen, rebuild it, then eventually go into tools/llc, 
and relink it.

There is a short-cut for this, if you are operating in a single directory. 
If you add 'llvm/utils' to your path, you can use the makellvm tool.  If 
you are in the llvm/lib/CodeGen directory, for example, "makellvm llc" 
will do a make in the current directory, then it will do a make in the 
llvm/tools/llc directory.

This often saves time and is simple to use.  The caveat is that your tree 
can get out of sync if you modify code in a different directory and forget 
to rebuild it.  If this happens, a 'make' from the top-level will rectify 

Also, if you are on a multiprocessor system, try 'make -j2' (where 2 is 
the number of processors on your system), it will build LLVM significantly 



More information about the llvm-dev mailing list