Journal Articles

  1. LLOV: A Fast Static Data-Race Checker for OpenMP Programs
    Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay

    In the era of Exascale computing, writing efficient parallel programs is indispensable, and, at the same time, writing sound parallel programs is very difficult. Specifying parallelism with frameworks such as OpenMP is relatively easy, but data races in these programs are an important source of bugs. In this article, we propose LLOV, a fast, lightweight, language agnostic, and static data race checker for OpenMP programs based on the LLVM compiler framework. We compare LLOV with other state-of-the-art data race checkers on a variety of well-established benchmarks. We show that the precision, accuracy, and the F1 score of LLOV is comparable to other checkers while being orders of magnitude faster. To the best of our knowledge, LLOV is the only tool among the state-of-the-art data race checkers that can verify a C/C++ or FORTRAN program to be data race free.

    @article{Bora-taco-2020,
      author = {Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay},
      title = {{LLOV: A Fast Static Data-Race Checker for OpenMP Programs}},
      year = {2020},
      issue_date = {November 2020},
      publisher = {Association for Computing Machinery},
      address = {New York, NY, USA},
      volume = {17},
      number = {4},
      issn = {1544-3566},
      url = {https://doi.org/10.1145/3418597},
      doi = {10.1145/3418597},
      journal = {ACM Trans. Archit. Code Optim.},
      month = dec,
      articleno = {35},
      numpages = {26},
      keywords = {OpenMP, program verification, polyhedral compilation, static analysis, data race detection, shared memory programming}
    }
    
  2. An analysis of executable size reduction by LLVM passes
    Jain, Shalini and Bora, Utpal and Kumar, Prateek and Sinha, Vaibhav B. and Purini, Suresh and Upadrasta, Ramakrishna

    The formidable increase in the number of smaller and smarter embedded devices has compelled programmers to develop more and more specialized application programs for these systems. These resource intensive programs that have to be executed on limited memory systems make a strong case for compiler optimizations that reduce the executable size of programs. Standard compilers (like LLVM) offer an out-of-the-box -Oz optimization option—just a series of compiler optimization passes—that is specifically targeted for the reduction of the generated executable size. In this paper, we aim to analyze the effects of optimizations of LLVM compiler on the reduction of executable size. Specifically, we take the size of the executable as a metric and attempt to divide the -Oz series into logical groups and study their individual effects; while also study the effect of their combinations. Our preliminary study over SPEC CPU 2017 benchmarks gives us an insight into the comparative effect of the groups of passes on the executable size. Our work has potential to enable the user to tailor a custom series of passes so as to obtain the desired executable size.

    @article{Jain-csitict-2019,
      author = {Jain, Shalini and Bora, Utpal and Kumar, Prateek and Sinha, Vaibhav B. and Purini, Suresh and Upadrasta, Ramakrishna},
      title = {An analysis of executable size reduction by LLVM passes},
      journal = {CSI Transactions on ICT},
      year = {2019},
      month = jun,
      day = {01},
      volume = {7},
      number = {2},
      pages = {105--110},
      issn = {2277-9086},
      doi = {10.1007/s40012-019-00248-5},
      url = {https://doi.org/10.1007/s40012-019-00248-5}
    }
    

Technical Talks and Posters

  1. Improved loop distribution in LLVM using polyhedral dependences
    Dangeti, Tharun Kumar and Bora, Utpal and Das, Santanu and Grosser, Tobias and Upadrasta, Ramakrishna
    @misc{dangeti2017improved,
      title = {Improved loop distribution in LLVM using polyhedral dependences},
      author = {Dangeti, Tharun Kumar and Bora, Utpal and Das, Santanu and Grosser, Tobias and Upadrasta, Ramakrishna},
      booktitle = {The Fourth Workshop on the LLVM Compiler Infrastructure in HPC},
      howpublished = {\url{https://llvm-hpc4-workshop.github.io/talks.html}},
      year = {2017},
      note = {\href{https://llvm-hpc4-workshop.github.io/talks.html}{Lightning Talk, LLVM-HPC Workshop at SC}}
    }
    
  2. GSoC 2016: PolyhedralInfo - Polly as an analysis pass in LLVM
    Bora, Utpal and Doerfert, Johannes and Grosser, Tobias and Upadrasta, Ramakrishna
    @misc{utpal2016gsoc,
      author = {Bora, Utpal and Doerfert, Johannes and Grosser, Tobias and Upadrasta, Ramakrishna},
      title = {{GSoC 2016: PolyhedralInfo - Polly as an analysis pass in LLVM}},
      howpublished = {\url{https://llvmdevelopersmeetingbay2016.sched.com/event/8Z2Z/lightning-talks}},
      year = {2016},
      note = {\href{https://llvmdevelopersmeetingbay2016.sched.com/event/8Z2Z/lightning-talks}{Lightning Talk, US LLVM Dev Meet}}
    }
    
  3. DataRaceBench FORTRAN
    Kukreja, Pankaj and Shukla, Himanshu and Bora, Utpal
    @misc{drbForturl,
      author = {Kukreja, Pankaj and Shukla, Himanshu and Bora, Utpal},
      title = {{DataRaceBench FORTRAN}},
      howpublished = {\url{https://github.com/IITH-Compilers/drb_fortran}},
      year = {2019},
      note = {\href{https://github.com/IITH-Compilers/drb_fortran}{Github}}
    }
    
  4. LLOV: A Fast Static Data-Race Checker for OpenMP Programs
    Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay
    @misc{bora2020llov-cgo,
      title = {{LLOV: A Fast Static Data-Race Checker for OpenMP Programs}},
      author = {Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay},
      year = {2020},
      howpublished = {\url{https://llvm.org/devmtg/2020-02-23/}},
      note = {\href{https://llvm.org/devmtg/2020-02-23/\#ub}{Technical Talk, LLVM Performance Workshop at CGO}}
    }
    
  5. LLOV: A Fast Static Data-Race Checker for OpenMP Programs
    Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay
    @misc{bora2020llov-fsttcs,
      title = {{LLOV: A Fast Static Data-Race Checker for OpenMP Programs}},
      author = {Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay},
      year = {2020},
      howpublished = {\url{https://www.microsoft.com/en-us/research/event/research-highlights-in-programming-languages-fsttcs-2020/\#!schedule-17th-dec-2020}},
      note = {\href{https://www.microsoft.com/en-us/research/event/research-highlights-in-programming-languages-fsttcs-2020/\#!schedule-17th-dec-2020}{Technical Talk, RHPL Workshop at FSTTCS}}
    }
    
  6. LLOV: A Fast Static Data-Race Checker for OpenMP Programs
    Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay
    @misc{bora2021llov-hipeac,
      title = {{LLOV: A Fast Static Data-Race Checker for OpenMP Programs}},
      author = {Bora, Utpal and Das, Santanu and Kukreja, Pankaj and Joshi, Saurabh and Upadrasta, Ramakrishna and Rajopadhye, Sanjay},
      year = {2021},
      howpublished = {\url{https://www.hipeac.net/2021/budapest/\#/program/paper-track/}},
      note = {\href{https://www.hipeac.net/2021/budapest/#/program/paper-track/}{Invited Talk, HiPEAC}}
    }
    
  7. A Comparative Study of Vectorization in Compilers
    Das, Santanu and Kumar, Dangeti Tharun and Bora, Utpal and Upadrasta, Ramakrishna
    @misc{das2016vec,
      title = {A Comparative Study of Vectorization in Compilers},
      author = {Das, Santanu and Kumar, Dangeti Tharun and Bora, Utpal and Upadrasta, Ramakrishna},
      year = {2016},
      howpublished = {\url{https://www.hipc.org/hipc2016/studentsymposium.php}},
      note = {\href{https://www.hipc.org/hipc2016/studentsymposium.php}{Poster, HiPC}}
    }
    
  8. Introduction to LLVM Compiler Infrastructure
    Bora, Utpal and Pratik, Bhatu
    @misc{bora2016gdg,
      title = {Introduction to LLVM Compiler Infrastructure},
      author = {Bora, Utpal and Pratik, Bhatu},
      year = {2016},
      howpublished = {\url{}},
      note = {\href{}{Invited Talk, GDG DevFest Hyderabad}}
    }