unsupported instructions in interpreter

Hi,

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.

Reid

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?