Skip to content

PhongNgo/llvm

 
 

Repository files navigation

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

About

Custom Low Level Virtual Machine (LLVM) for HiPE

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 68.4%
  • Assembly 10.3%
  • Objective-C 10.0%
  • Shell 5.3%
  • C 3.5%
  • OCaml 1.1%
  • Other 1.4%