[LLVMdev] LLVM bytecode simulator/emulator?

Kenneth Hoste kenneth.hoste at elis.ugent.be
Thu Jul 13 13:16:14 PDT 2006


Chris Lattner wrote:
> On Thu, 13 Jul 2006, Kenneth Hoste wrote:
>> Chris Lattner wrote:
>>> Hacking on the interpreter is easy, but has several drawbacks.  In 
>>> particular, the interpreter is very slow (even compared to other 
>>> interpreters) and it is missing functionality: you cannot call 
>>> arbitrary external functions, which causes many programs to fail in it.
>>
>> What do you mean by external functions? I only need to print stuff to 
>> file, the measuring of the characteristics should be pretty easy I think.
> 
> I mean things like printf, exit, write, etc.  Take a look at 
> lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
> 
> If there is a small set of things you need to support, this shouldn't be 
> a problem.  Adding functions is easy.
> 
>>> OTOH, writing an llvm-to-llvm transformation has many advantages: we 
>>> have plenty of robust infrastructure for doing such a thing, many 
>>> people use this, you can use any code generator you like with it 
>>> (JIT, static compiler, or C backend), and you can even use LLVM 
>>> optimizations to reduce the cost of your instrumentation.
>>
>> Is there some kind of tutorial on this? Or an example program or 
>> something? This sounds quite interesting...
> 
> There is extensive documentation at http://llvm.org/docs/

After browsing through the docs, at a first glance I think I should 
write a plugin for the 'analyze' tool. I think 
http://llvm.org/docs/WritingAnLLVMPass.html is where I should start from.
The only problem I see now is that there doesn't seem to be a way to get 
information on a single instruction while being able to keep state over 
all instructions... Is that possible, and if it is, can oyu tell me how 
(or where I can find an example of it?).

greetings (and thanks for your help),

Kenneth



-- 
Statistics are like a bikini. What they reveal is suggestive, but what 
they conceal is vital (Aaron Levenstein)

Kenneth Hoste
ELIS - Ghent University
kenneth.hoste at elis.ugent.be
http://www.elis.ugent.be/~kehoste



More information about the llvm-dev mailing list