erlang/otp — pull request #277 by yiannist (2014-03-07 17:50:44+00:00)
Title: Add a new HiPE backend that uses LLVM

This is one more HiPE backend (there is a new dir under hipe named hipe/llvm
and changes in erts/emulator/hipe and hipe) which is not on by default.

To use the new backend, you need to have a recent LLVM already installed (it
requires 3.4 which has been released in January 2014 or the current dev branch)
and pass to the HiPE compiler the option 'to_llvm'. Currently, there is no check
that a proper LLVM option is available; this is something we should add soon,
perhaps as part of a configure option.

As far as we know, the new backend works correctly in everything we have tried
on x86_64 (even --enable-native-libs, running dialyzer on OTP using it, and
other tests) but has a (still unknown) bug on the x86, though many tests work
there too.

As to what to expect in performance, currently you can expect roughly similar
performance as vanilla HiPE (some benchmarks run a bit faster, others a bit
slower) and longer compilation times (because we are using intermediate files).