Roslyn, LLILC and WebAssembly?


Given Joe Duffy’s blog is so quite these days, its time to speculate.

The LLILC announcement some months ago is interesting – a continued openness from Microsoft.  The main difference between Roslyn and LLILC, as provided by LLILC github is:

Roslyn provides frontend support, whilst LLILC (via LLVM) provides backend support:

Roslyn exposes the data structures of a frontend – so it’s ideal for building tools such as IDEs, with syntax coloring, warning squiggles, use/definition lookup, refactoring, etc; or translators that convert C# to some other language; or pretty-print formatters; or analyzers that check conformance with coding guidelines (think FxCop).

LLILC, via LLVM, exposes the data structures of a backend – so it’s ideal for building tools that inject extra code (eg: performance profiler, code tracer, debugger, parallelism analyzer, race detector); or super-optimizing code (eg: auto-vectorizer, auto-parallelizer); or test-case reduction.

The key in the above is the reference to LLVM, especially if you read “From ASM.JS to WebAssembly“, and then you read “WebAssembly LLVM Backend Being Discussed”.

Further, Brendan Eich’s recent interview on WebAssembly provides us with this:

Microsoft has their own compiler so they’ll be doing wasm from a different compiler framework, but that’s great.

Given the LLILC work, it would be logically to leverage the LLVM to generate wasm

Interesting times.

~ by mdavey on June 29, 2015.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.