Custom Low Level Virtual Machine (LLVM) for HiPE
C++ Assembly Objective-C Shell C OCaml Other
Switch branches/tags
Nothing to show
Pull request Compare This branch is 11 commits ahead, 20706 commits behind yiannist:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
autoconf
bindings
cmake
docs
examples
include
lib
projects
runtime
test
tools
unittests
utils
.gitignore
CMakeLists.txt
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
README.txt
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in [LICENSE.txt] [1].

Please see the HTML documentation provided in [docs/index.html] [2] for further
assistance with LLVM.

If you're writing a package for LLVM, see [docs/Packaging.html] [3] for our
suggestions.


Why forked?
===========

We created this project at Github in order to work on implementing an
ABI-compliant back-end for Erlang/OTP. More information on the need
and design decisions of the new back-end to be announced.

Also see: [custom Erlang/OTP] [4]


Installing custom LLVM
======================

*  Getting latest source code from [Github] [5]:

        git clone git://github.com/yiannist/llvm.git llvm

*  Compiling:

        cd llvm/
        ./configure --enable-optimized --disable-assertions
        make -j N (where *N* is the number of CPU cores you want to use for the compilation process)

*  Installing:

        sudo make install

*  Verifying that the installation was successful. Compile [hello_1.ll] [6] and compare its output (hello_1.s) to [hello_1_correct.s] [7]:

        yiannis@mosby [~/git/llvm]>>= llc -load=ErlangGC.so hello_1.ll
        yiannis@mosby [~/git/llvm]>>= diff hello_1.s hello_1_correct.s
        yiannis@mosby [~/git/llvm]>>=

* You may now procceed installing [Erlang/OTP] [4] with the new LLVM back-end.


[1]: http://github.com/yiannist/llvm/blob/master/LICENSE.TXT
[2]: http://github.com/yiannist/llvm/blob/master/docs/index.html
[3]: http://github.com/yiannist/llvm/blob/master/docs/Packaging.html
[4]: http://github.com/yiannist/otp
[5]: http://github.com/yiannist/llvm
[6]: http://erllvm.softlab.ntua.gr/files/hello_1.ll
[7]: http://erllvm.softlab.ntua.gr/files/hello_1_correct.s