[LLVMdev] unsupported instructions in interpreter

Jianzhou Zhao
2010-07-14T18:29:46Z

On Wed, Jul 14, 2010 at 1:12 PM, Reid Kleckner <reid.kleckner at
gmail.com> wrote:
> On Wed, Jul 14, 2010 at 6:05 AM, Jianzhou Zhao <jianzhou at
seas.upenn.edu> wrote:
>> Some instructions are not implemented in the interpreter. For example,
>> extractvalue, insertvalue, load/store aggregate pointers, bitcast
>> between vectors and ints. Is this only the limitation of the current
>> release? or is there any technical reason that the interpreter has to
>> omit these instructions.
>
> No.  The interpreter is just not well maintained.  I think it was
> originally created as a way to check the correctness of the JIT, but
> now that the JIT is robust, it sees little use.

The interpreter helps if it can be taken as an executable
specification of IR's semantics. I had some confusion about the
semantics of a few instructions, so I looked into the interpreter.
LLVM has a lot of JIT's, but they always depend on a particular
target, so I am not sure how to connect the implementation of a JIT
with the semantics of the machine-independent IR. If I wanted to
understand how semantics of IR is defined, which JIT should I refer
to?

>
> Reid
>



--
Jianzhou