[LLVMdev] Upstreaming PNaCl's IR simplification passes

Alp Toker alp at nuanti.com
Wed Mar 5 04:32:42 PST 2014


On 05/03/2014 00:12, Sean Silva wrote:
> I'd also like to point out that IR-level passes are pretty much LLVM's 
> strongest point of decoupling and modularization, so of all code 
> changes to have no in-tree users (if indeed there are none), this is 
> probably a best-case scenario from a maintainability perspective 
> (especially if it becomes the point of collaboration for Emscripten 
> and PNaCl).

Just to chime in with another use case, these passes would have been 
useful for lowering to MSIL in our C++/CLI compiler.

We initially experimented with LLVM as the backend for our C++/CLI 
compiler but hit upon problems just like these -- and without the skill 
set to solve them at the time, we ended up resorting to just blasting 
out bytecode from clang IRGen.

The IRGen kludge "works for us" but it's always been a regret of mine 
that we missed out on a lot of what makes LLVM great at the last mile. 
We're kind of stuck with that decision today but +1 for facilities that 
help others avoid that fate.

I can see how such facilities may appear orthogonal to people working on 
"real" machine backends but the same could be said for JIT / MCJIT which 
currently doesn't have in-tree users.

If a real in-tree user would help how about expediting the inclusion of 
PNaCl or Emscripten? I know developers on both teams and have confidence 
in their ability to keep with the programme.

Alp.

-- 
http://www.nuanti.com
the browser experts




More information about the llvm-dev mailing list