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