Smart Compilation

Recent applications impose various needs on computing environments. These needs include, but not exhaustively, high throughput, low latency, energy efficiency, reliability, or any combinations of them. For instance, both mobile and datacenter applications ask for high performance and energy efficiency. Furthermore, the increasing possibility of faults due to the aggressive semiconductor technology scaling gives the emphasis on reliability.

In order to meet such complex requirements without unduly burdening programmers, compilers must become smart. They have to understand programs better with accurate analysis and generate optimized code that properly exploits the underlying architecture support for the specific goals. To achieve high performance with the multitude of features that current generation microprocessors provide, for example, compilers should be able to extract the required levels of parallelism from the program and orchestrate the code so as to efficiently use the underlying hardware. They also need to provide mechanisms for reliability. The CCCP group conducts diverse research on smart compilation techniques to address the complex requirements.

The LLVM compiler framework is used to develop and implement compiler optimization passes to realize those research ideas.

Below is a list of the research work we have been doing in the area of compilers.

Page last modified January 22, 2016.