[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