Publications

Publications and Reports

This page includes both recent papers related to the ALLVM project, as well older papers that are important building blocks of the ALLVM approach.

  1. Understanding Integer Overflow in C/C++.
    Will Dietz, Peng Li, John Regehr, Vikram Adve
    ACM Transactions on Software Engineering and Methodology (TOSEM), Volume 25 Issue 1, December 2015.
    (Invited journal version of the ICSE 2012 paper of the same title, below, revised and extended for journal publication.)
  2. Slipstream: Automatic Interprocess Communication Optimization.
    Will Dietz, Joshua Cranmer, Nathan Dautenhahn, and Vikram Adve.
    Proceedings of the 2015 USENIX Annual Technical Conference (USENIX ATC’15), July 2015.
  3. KCoFI: Complete Control-Flow Integrity for Commodity Operating System Kernels.
    John Criswell, Nathan Dautenhahn, and Vikram Adve.
    Proceedings of the Thirty Fifth IEEE Symposium on Security and Privacy (Oakland ’14), San Jose, CA, May 2014.
  4. Virtual Ghost: Protecting Applications from Hostile Operating Systems.
    John Criswell, Nathan Dautenhahn, and Vikram Adve.
    Proceedings of the Nineteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’14), Salt Lake City, UT, March 2014.
  5. Using Likely Invariants for Automated Software Fault Localization.
    Swarup Kumar Sahoo, John Criswell, Chase Geigle, and Vikram Adve.
    Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013. (PDF)
  6. Understanding Integer Overflow in C/C++.
    Will Dietz, Peng Li, John Regehr, Vikram Adve.
    Proceedings of the 2012 International Conference on Software Engineering (ICSE’12), June 2012.  Received an ACM SIGSOFT Distinguished Paper Award.
  7. Virtual Instruction Set Computing for Heterogeneous Systems.
    Vikram Adve, Sarita Adve, Rakesh Komuravelli, Matthew D. Sinclair, and Prakalp Srivastava.
    4th USENIX Workshop on Hot Topics in Parallelism (HotPar), June 2012.
  8. Memory Safety for Low-Level Software/Hardware Interactions.
    John Criswell, Nicolas Geoffray, and Vikram Adve. Proceedings of the Eighteenth USENIX Security Symposium, Montreal, Canada, August 2009.
  9. Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems.
    John Criswell, Andrew Lenharth, Dinakar Dhurjati, and Vikram Adve.
    Proceedings of the Twenty First ACM Symposium on Operating Systems Principles (SOSP ’07), Stevenson, WA, October 2007.
    Received an SOSP 2007 Audience Choice Award.
  10. A Virtual Instruction Set Interface for Operating System Kernels.
    John Criswell, Brent Monroe, and Vikram Adve.
    Workshop on the Interaction between Operating Systems and Computer Architecture (WIOSCA ’06), Boston, Massachusetts, 2006.
  11. Vector LLVA: A Virtual Vector Instruction Set for Media Processing.
    Robert L. Bocchino Jr. and Vikram S. Adve.
    Proceedings of the Second International Conference on Virtual Execution Environments (VEE’06), Ottawa, Canada, June 2006.
  12. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation.
    Chris Lattner and Vikram Adve.
    Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO ’04), 2004.
    Received the 2014 10-year Most Influential Paper Award for papers from CGO 2004.
  13. LLVA: A Low-level Virtual Instruction Set Architecture
    Vikram Adve, Chris Lattner, Michael Brukman, Anand Shukla, and Brian Gaeke.
    Proceedings of the 36th annual ACM/IEEE international symposium on Microarchitecture (MICRO), December 2003.