Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To me, the most interesting thing about PNaCl is that it'll be the first real test of LLVM as a portable assembly bitcode, rather than just a compiler IR. There are arguments for why LLVM may not be such a good idea, but given the momentum it's been making, I can only see good things happening for LLVM if more people use it.


Right. I had always thought that LLVM bitcode was unsuitable as a portable representation because it inevitably encoded architecture-specific details.

Consider code like this:

    int lsize(void) { return sizeof(void *); }
how would this be compiled portably, so that it returns 4 or 8 as appropriate? What would the LLVM bitcode look like?


This is true for LLVM bitcode in general, but PNaCl specifies an abstract machine that defines pointers as 4 bytes long. It also specifies Little Endian &c.

See http://www.chromium.org/nativeclient/pnacl/bitcode-abi#TOC-D...


The second real test. Android Renderscript uses LLVM for portable bytecode already.


Actually, emscripten does the same thing: LLVM->JS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: