Linux/ARM: Bus error with -O3 flag of clang/llvm-3.6 while running unit-test of .NET Core

Renato Golin via llvm-commits llvm-commits at lists.llvm.org
Sat Jul 9 11:47:09 PDT 2016


On 9 July 2016 at 17:40, Tim Northover <t.p.northover at gmail.com> wrote:
> The crashing instruction (ed940b00) was "vldr d0, [r4]" which does not
> permit unaligned accesses even when they're generally allowed (I
> believe).

Ah, this explains it! :)


> There's a flag in one of the system registers controlling whether
> unaligned accesses are generally permitted. But it's not usually set
> to ban them on Linux, and wouldn't affect vldr anyway, so I don't
> think it applies here.

Indeed.


> That would only work if the alignment fault was in the basic code. As
> you've realised, it's more likely to be in the dynamically JITed
> output. This option wouldn't help anyway though: LLVM already believes
> it's doing an aligned access or it wouldn't use that instruction.

Which makes it a lot harder to find. :(

Can you reduce a piece of IR that always fail, even if it's on your
JIT, it should give us clues as to what's going on.

cheers,
--renato


More information about the llvm-commits mailing list