AESOP: A New Auto-Parallelizing Compiler
Phoronix: AESOP: A New Auto-Parallelizing Compiler
AESOP is a new auto-parallelizing C/C++ compiler for shared memory systems. This new open-source compiler was written at the University of Maryland and is now available to the public...
It's worth noting that this is built as a Clang/LLVM modification. It "replaces" Clang in that it offers a driver (CLI tool) to invoke itself using the modified Clang frontend and LLVM backend. It offers a GCC driver by using a modified DragonEgg plugin (LLVM backing a GCC frontend).
It's essentially a large patch to Clang/LLVM, not a whole new compiler.
Thanks, elanthis. I am one of the AESOP developers, and this is basically right. AESOP leverages existing LLVM frontends, and just provides its own "replacement" drivers to enable people to easily attempt whole-program autoparallelization in existing projects.
Originally Posted by elanthis
Although we can compile some major SPEC/NAS benchmarks with good results, we are certainly not claiming that AESOP is anywhere near production-ready. We are also not claiming that this is a whole new compiler framework, rather, it is a compiler implemented using LLVM. Most of the implementation amounts to several significant additional LLVM-based libraries which provide the required analysis and transformations.
The work was announced to the LLVMdev mailing list in case other LLVM developers/researchers might be interested in the work so far.
This sounds great, this is something I think many people hoped for. Is this something that's already being merged into Clang or is it too complicated to simply merge? When can we expect to see this implemented in Clang and do the developers of AESOP plan to continue developing for AESOP exclusively or work with Clang more closely instead?
Last edited by Feared; 03-04-2013 at 04:38 PM.
Reason: forgotten words
Although architecturally the AESOP analysis and code generation might merge nicely into LLVM, the problem is that AESOP's code is only research quality; it would need a lot of cleanup, review, and testing before it would be worthy of inclusion in LLVM. We announced to the LLVM mailing list because our research projects which used these parts of AESOP are winding down, and we thought it would be good to make the work available in case others find it useful. Although it is not production-ready, it can still compile pretty large projects and sometimes gets good results without the user having to resort to manual parallelization.
Originally Posted by Feared