llvm.js

使用 Emscripten 将 LLVM 编译为 JavaScript。「LLVM compiled to JavaScript using Emscripten」

Github stars Tracking Chart

llvm.js

LLVM compiled to JavaScript using Emscripten

Generating the Bitcode

In a build directory under llvm root, run

emconfigure ../configure --enable-optimized --enable-targets=x86 --enable-libcpp --disable-jit --disable-threads --disable-pthreads
emmake make

You will hit errors on attempting to use tblgen and others, the build system is self-executing, but we generate bitcode that is unrunnable. When the errors happen, copy in the file from a parallel native build, and edit the Makefile of the parent dir (for llvm-tblgen, utils/, for llvm-config, tools/ and ./) that generates that file to not call it (otherwise, running make again will go back and overwrite the one you just copied in). Re-run make.

You may also hit errors on all-targets including Hexagon stuff, not sure why. To avoid that, edit the Makefiles and replace all-targets with x86 (specifically, in tools/opt, tools/llc. Note that these seem to be created/updated on the fly, as the later ones only show up after you fix earlier bugs, requiring multiple invocations of make.)

Then copy from the bin/ directory the relevant bitcode files to here, with suffix .bc

TODO: automate all preceding steps

Run doit.sh

Overview

Name With Ownerkripken/llvm.js
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 3)
Platform
License:
Release Count0
Created At2012-12-23 22:16:37
Pushed At2015-03-03 00:22:18
Last Commit At2015-03-02 16:22:18
Stargazers Count453
Watchers Count37
Fork Count36
Commits Count41
Has Issues Enabled
Issues Count6
Issue Open Count6
Pull Requests Count2
Pull Requests Open Count0
Pull Requests Close Count1
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top