dmr_C - a project based on Sparse that aims to create a JIT compiler for C

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I am creating a JIT compiler for C building upon the Sparse library.
The project is hosted on GitHub (link below) and has the same license
as Sparse.

Initially I plan to build the backend by reusing the Sparse LLVM
backend hence my interest in making sure that it works correctly. But
in the long run, I would like a backend that is really compact - LLVM
is just too big a beast. I am currently considering nanojit as the
alternative backend.

I decided to use Sparse as a front-end as it seems to be fully
featured as a C front-end, and also does lot more than a simple
parser. The fact that it produces SSA IR is perfect for my needs. I
did not want to use a front-end such as Clang because of the sheer
size and complexity of Clang which results from supporting C++ and
Objective C. I want to build a relatively small and compact JIT engine
that doesn't have a lot of extra baggage.

To reuse Sparse as the JIT engine, I am making some changes to it.
Primarily I have removed (almost) all global state - as I needed the
ability to clean up all state after each compilation run, and serve
any number of requests within the same process instance. The other
changes are to do with making sure that Sparse can be compiled using
MSVC - so I had to change some of the gcc specific C features used in
Sparse.

The interest in a JIT engine for C arose from my attempt to create a
JIT compiler for the Lua language. I have coded this in LLVM but it is
too tedious to code and maintain. Being able to use a C based JIT will
make life much easier. Not only that it also makes it easier to switch
to a non-LLVM backend.

I think Sparse is an amazing project - so many thanks to you all for
creating it, and for making it available under MIT license.

Link to my project:

https://github.com/dibyendumajumdar/dmr_c

Thanks and Regards
Dibyendu
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux