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
things.
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
faster.
-Chris
--
http://nondot.org/sabre/
http://llvm.org/