Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Jan 2013 18:25:03 +0200
From:      David Naylor <naylor.b.david@gmail.com>
To:        freebsd-toolchain@freebsd.org
Cc:        Nathan Whitehorn <nwhitehorn@freebsd.org>, freebsd-arch@freebsd.org
Subject:   Re: LLVM Image Activator
Message-ID:  <201301071825.06439.naylor.b.david@gmail.com>
In-Reply-To: <50E9BC2D.7000302@freebsd.org>
References:  <50E9BC2D.7000302@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart1362420.XBIvH0nEZn
Content-Type: Text/Plain;
  charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

Just my 2c

On Sunday, 6 January 2013 20:02:21 Nathan Whitehorn wrote:
> Having LLVM/clang in the base system lets us do some interesting things
> that we couldn't do with GCC. One is that LLVM ships with a JIT for LLVM
> IR as well as components of a toolchain for it (this is what Google's
> pNACL uses) and that you can end up producing binary files that are in
> IR instead of native code. The IR isn't really cross-platform, but does
> let you do CPU-specific optimizations when executed by the JIT, etc.
>=20
> The attached patch causes the LLVM JIT (lli) to be built by default
> (adding ~20 seconds to buildworld on my five-year-old laptop) and adds a
> kernel image activator that invokes it when passed LLVM bitcode files.
> It's not completely finished (see the XXX comment in the middle), but it
> does work, as follows:
>=20
> $ clang -emit-llvm -c -o hw.ll hw.c
> $ file hw.ll
> hw.ll: LLVM bitcode
> $ lli hw.ll
> Hello world!
> $ chmod a+x hw.ll
> $ ./hw.ll
> Hello world!
> $
>=20
> Is there any interest in having features like this? It seems like this
> could provides some interesting possibilities for us and nice
> integration from having imported clang into base.

Would it be possible to have this as a module (and thus in ports)?  Or,=20
perhaps, change the sources such these things could be loaded as a module...

Also, with modification to LLVM, wouldn't the existing '#!' mechanism work=
=20
(aka '#!/usr/bin/lli') at the beginning of the file? =20

On an aside.  Could you imagine shipping a 'x86' llvm-byte code and get the=
=20
jit (with caching), thus your computer will get full support (speed) from t=
he=20
binaries and the binaries will work on all 'x86' related architectures.  (M=
y=20
thinking is for things like i386 vs pentium4). =20

Regards

--nextPart1362420.XBIvH0nEZn
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iEYEABECAAYFAlDq9uIACgkQUaaFgP9pFrKo3ACeNX5ZhxuslKEem1bHkRpR8YQd
HDoAn1Ukz4GTpxieoB7u1C7UFCSJsV90
=r9wK
-----END PGP SIGNATURE-----

--nextPart1362420.XBIvH0nEZn--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301071825.06439.naylor.b.david>