Research Domains

Our broad research is in Programming Languages and Compilers. More specifically, following are the research areas we are currently working on.

Static analysis and Program Optimizations

  • Compile time program analysis is indispensable for both program optimization as well as program verification.
  • Detecting bugs at compile time reduces the risk of runtime failures, which can be fatal for safety critical systems.
  • Program optimization can reduce the execution time of the program, thereby enhancing the performance and increasing user experience.
LLOV    
Executable Size Reduction    
P4LLVM    
LLProf    
    

Machine Learning for Compilers

A well defined sequence of compiler optimizations will have a strong impact on performance of the program. Optimization decisions for achieving optimal performance are complex and are computationally hard. Hence machine learning techniques can help in making making better optimization decisions.

ML-Compiler-Bridge    
ML-LLVM-Tools    
RL4ReAl    
RL-LoopDistribution    
Network Function Identification    
POSET-RL    
IR2Vec    

Compilers for Deep Learning

With the emergence of various deep learning models and hardware architectures, it is infeasible to write optimized code for every architecture. There are various techniques to optimize the code but the search space is huge. Hence deep learning techniques helps to design good heuristics to select optimized code.

PolyDL    

Polyhedral Compilation

A class of programs called affine programs can be represented as integer polyhedra to perform high level transformations such as loop-fusion, loop-distribution, tiling, skewing, loop-rotaion, etc. to optimize for runtime. Polyhedral compilation can perform complex transformations to generate architecture dependent optimized code.

BullsEye    
    
UTVPI Over-approximation    
Optimizing DL Kernels    
Cache Miss Calculator    
Polly as Analysis Pass    

Code Compilance and Security

Safety of critical systems is of utmost importance as the failure or malfunction of one can lead to significant increase in the safety risk for the people or environment involved. Code Compliance checkers are hence designed to verify the various coding standards developed to ensure the safety of critical systems namely MISRA, CERT, ISO26262.

CCCheckers
A code compliance checker that can verify programs according to the MISRA standards for C.