AESOP is a high-performance, open-source compiler developed as LLVM plugins at the University of Maryland. Unlike many research compilers, AESOP is designed to handle real-world code rather than small, simple kernels. For example, AESOP can compile SPEC2006 and OMP2001 benchmarks, and our automated test suite consists of over 2 million lines of code. Still, we warn that AESOP is still just a 2-person research project, and we do not claim it to be production-ready.
By leveraging existing LLVM frontends and performing its analysis and transformations at the bytecode level, AESOP can serve as a drop-in replacement for clang, gcc, g++ and gfortran.
AESOP is free software, primarily tested targeting 32-bit x86 Linux. However, parts of it are likely to work wherever LLVM works.
The AESOP source is available as an LLVM project intended to share an installation prefix with an LLVM build.
So we can have some idea of who is using AESOP, we ask that you fill out this inline form before downloading. (No approval is required.)
We haven't set up a public repository yet, but potential contributors are welcome to contact us about access.
The AESOP white paper describes the design, implementation, and performance of AESOP in more detail.
To reference this white paper, please use the following:
Try out our online demo to get an idea of AESOP's capabilities. Enter some arbitrary C code forming a whole program and see what AESOP would do. Optionally, you can view the code generation as LLVM IR.
aesopcc -m32 -O3 -I. a.c b.c -o a
aesopgcc -m32 -O3 -I. a.c b.c -o a
aesopfort -m32 -O3 -I. a.f b.f -o a
$ make CC=aesopcc CXX=aesopc++ FC=aesopfort F77=aesopfort CFLAGS="-m32" CXXFLAGS="-m32" FFLAGS="-m32" LDFLAGS="-m32"
$ ./configure CC=aesopcc CXX=aesopc++ FC=aesopfort F77=aesopfort CFLAGS="-m32" CXXFLAGS="-m32" FFLAGS="-m32" LDFLAGS="-m32" $ make -j16
We would like to thank Wojciech Matyjewicz for the base loop memory dependence analysis code used for this project.
This work was supported in part by DARPA via the AACE program, and in part by a NASA Office of the Chief Technologist’s Space Technology Research Fellowship.
Rajeev Barua is an associate professor in the department of Electrical and Computer Engineering at the University of Maryland. Dr. Barua is the principal investigator of the AESOP project.
Aparna Kotha has graduated with her PhD, but worked on AESOP as a student under Prof. Barua.
Tim Creech has graduated with his PhD, but worked on AESOP as a student under Prof. Barua. Tim's work on this project was funded by a NASA Space Technology Research Fellowship.