I'm using the Debian LLVM package to try and do JIT on a Linux armhf device. Unfortunately it seems to be generating armel code rather than armhf code, and since the ABIs don't match nothing works. I've tried overriding the triple to arm-unknown-linux-gnueabihf and arm-linux-gnueabihf (via module->setTargetTriple), and while the triples are accepted, the actual generated code doesn't change with either. Unfortunately I don't have enough RAM on any of my ARM boxes to build LLVM from source, so I can't check to see whether this is a Debian misconfiguration or an intrinsic LLVM issue. Before I start go filing bugs, does anyone know if the LLVM 3.2 JIT actually works on an armhf device? -- ┌─── dg@cowlark.com ───── http://www.cowlark.com ───── │ │ 𝕻𝖍'𝖓𝖌𝖑𝖚𝖎 𝖒𝖌𝖑𝖜'𝖓𝖆𝖋𝖍 𝕮𝖙𝖍𝖚𝖑𝖍𝖚 𝕽'𝖑𝖞𝖊𝖍 𝖜𝖌𝖆𝖍'𝖓𝖆𝖌𝖑 𝖋𝖍𝖙𝖆𝖌𝖓. │ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 263 bytes Desc: OpenPGP digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130208/b9ebd081/attachment.sig>
On 8 February 2013 11:01, David Given <dg at cowlark.com> wrote:> I've tried overriding the triple to arm-unknown-linux-gnueabihf and > arm-linux-gnueabihf (via module->setTargetTriple), and while the triples > are accepted, the actual generated code doesn't change with either. >Hi David, If you set the triple to arm it won't help, since it'll default to ARMv4 which doesn't have hard float. Try setting armv7a-unknown-linux-gnueabihf and see if it works better. Before I start go filing bugs, does anyone know if the LLVM 3.2 JIT>actually works on an armhf device?>JIT was never the forte of ARM and I haven't tried yet, but I doubt it'll be any Debian misconfiguration. The whole architecture configuration is a bit odd... cheers, --renato -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130208/338ab2d1/attachment.html>
Renato Golin wrote: [...]> Try setting armv7a-unknown-linux-gnueabihf and see if it works better.No, that doesn't work either. [...]> JIT was never the forte of ARM and I haven't tried yet, but I doubt > it'll be any Debian misconfiguration. The whole architecture > configuration is a bit odd...Debian's clang packages are totally broken on armhf --- the compiler emits a confused warning about the platform being unrecognised, and then generates softfloat code --- so I was wondering about LLVM itself. (See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693208; although I notice that the bug seems to have been resolved without being fixed. clang 3.2 seems to have hit experimental, but that fails in a different way...) If it makes any difference, I'm not using the just-in-time part of the JIT, as it were. I have lazy compilation turned off and have a model where the entire script is compiled into IR code and then to machine code when my app starts. See the init() method here: https://cowlark.com/calculon/artifact/1e496bfd00104bd392b8da9dece45156dffe3039 -- ┌─── dg@cowlark.com ───── http://www.cowlark.com ───── │ │ 𝕻𝖍'𝖓𝖌𝖑𝖚𝖎 𝖒𝖌𝖑𝖜'𝖓𝖆𝖋𝖍 𝕮𝖙𝖍𝖚𝖑𝖍𝖚 𝕽'𝖑𝖞𝖊𝖍 𝖜𝖌𝖆𝖍'𝖓𝖆𝖌𝖑 𝖋𝖍𝖙𝖆𝖌𝖓. │ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 263 bytes Desc: OpenPGP digital signature URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130208/8ea05be4/attachment.sig>