[cfe-dev] exc_bad_instruction on arm

Tim Northover t.p.northover at gmail.com
Wed Sep 17 05:42:39 PDT 2014


Hi Anton,

I've added the llvmdev list, since the issues you're seeing are coming
from the backend, which is more their side.

On 17 September 2014 08:43, Anton Smirnov <dev at antonsmirnov.name> wrote:
> i've changed lli arguments to the next (instead of default):
>
> return llvm_interpret(
>     InputFile,
>     std::vector<std::string>(),
>     false, // ForceInterpreter
>     false, // UseMCJIT
> [...]
> Now i'm having:
>
> Unhandled instruction encoding format!
> UNREACHABLE executed at
> /Users/asmirnov/Documents/dev/src/llvm_34_ios/lib/Target/ARM/ARMCodeEmitter.cpp:547!

This one at least is understandable. Your options imply (I couldn't
find any "llvm_interpret" function, so there's some guesswork) that
you're using the old JIT. That's been discouraged for a while, and
it's  been removed completely now in trunk.

It's entirely possible it could randomly fall over (not all
instructions are supported), and probably not even worth worrying
about why. I'd just flip that "UseMCJIT" option.

The interpreter failure you were seeing earlier is harder to explain
(there are various options), but if we're lucky it won't happen in
MCJIT mode. Then we don't have to worry about that one either.

Cheers.

Tim.



More information about the cfe-dev mailing list