Here are some of the publications that use or build on LLVM. This list
generally lags behind publication; if you have a paper for this list,
please email the
LLVM Developer's mailing list with a Subject: line that begins with the
word "Publication" or commit it
directly to the www-pubs SVN module if you have llvm.org commit access.
"Spectres, Virtual Ghosts, and Hardware Support" Xiaowan Dong, Zhuojia Shen, John Criswell, Alan Cox, and Sandhya Dwarkadas Proceedings of the Seventh International Workshop on Hardware and Architectural Support for Security and Privacy (HASP), June 2018.
"Mull It Over: Mutation Testing Based on LLVM" Alex Denisov, Stanislav Pankevich IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), Apr. 2018.
2017
"Counterexample-Guided Bit-Precision Selection" Shaobo He and Zvonimir Rakamaric Proceedings of the Fifteenth Asian Symposium on Programming Languages and Systems (APLAS), Nov. 2017.
"Devirtualization in LLVM" Piotr Padlewski Proceedings Companion of the 2017 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH 2017), Oct. 2017.
"FaCT: A Flexible, Constant-Time Programming Language" Sunjay Cauligi, Gary Soeller, Fraser Brown, Brian Johannesmeyer, Yunlu Huang, Ranjit Jhala, and Deian Stefan IEEE Cybersecurity Development Conference (SecDev), Sep. 2017.
"Piecewise Holistic Autotuning of Parallel Programs with CERE" search Mihail Popov, Chadi Akel, Yohan Chatelain, William Jalby, and Pablo de Oliveira Castro Concurrency and Computation: Practice and Experience, June 2017.
"Taming Undefined Behavior in LLVM" Juneyoung Lee, Yoonseung Kim, Youngju Song, Chung-Kil Hur, Sanjoy Das, David Majnemer, John Regehr, and Nuno P. Lopes Proc. of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2017.
"Termination-Checking for LLVM Peephole Optimizations" David Menendez and Santosh Nagarakatte Proceedings of the 38th International Conference on Software Engineering (ICSE 2016), May 2016. ACM SIGSOFT Distinguished Paper Award.
"Towards Resiliency Evaluation of Vector Programs" Vishal Chandra Sharma, Ganesh Gopalakrishnan, Sriram Krishnamoorthy 21st IEEE Workshop on Dependable Parallel, Distributed and Network-Centric Systems (DPDNS), May 2016.
"Archer: Effectively Spotting Data Races in Large OpenMP Applications" Simone Atzeni, Ganesh Gopalakrishnan, Zvonimir Rakamaric, Dong H. Ahn, Ignacio Laguna, Martin Schulz, Greg L. Lee, Joachim Protze, Matthias S. Muller Proceedings of the 30th IEEE International Parallel and Distributed Processing Symposium (IPDPS 2016), May 2016.
"Provably Correct Peephole Optimizations with Alive" Nuno P. Lopes, David Menendez, Santosh Nagarakatte, and John Regehr Proc. of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), June 2015. Received a Distinguished Paper Award.
"LaminarIR: Compile-Time Queues for Structured Streams" Yousun Ko, Bernd Burgstaller, Bernhard Scholz Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), June 2015.
"Obfuscator-LLVM - Software Protection for the Masses" Pascal Junod, Julien Rinaldini, Johan Wehrli and Julie Michielin Proceedings of the First International Workshop on Software Protection (SPRO 2015), May 2015.
"Beyond the PDP-11: Architectural Support for a Memory-Safe C Abstract Machine" David Chisnall, Colin Rothwell, Robert N. M. Watson, Jonathan Woodruff, Munraj Vadera, Simon W. Moore, Michael Roe, Brooks Davis, and Peter G. Neumann Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2015), Mar. 2015.
"AI: A Lightweight System for Tolerating Concurrency Bugs" Mingxing Zhang, Yongwei Wu, Shan Lu, Shanxiang Qi, Jinglei Ren, and Weimin Zheng Proceedings of the Twenty Second ACM SIGSOFT International Symposium on Foundations of Software Engineering, Nov. 2014. Received an ACM SIGSOFT Distinguished Paper Award.
"Code-Pointer Integrity" Volodymyr Kuznetsov, László Szekeres, Mathias Payer, George Candea, R. Sekar, and Dawn Song Proceedings of the Eleventh USENIX Symposium on Operating Systems Design and Implementation (OSDI 2014), Oct. 2014.
"Secure Virtual Architecture: Security for Commodity Software Systems" John Criswell Ph.D. Dissertation, University of Illinois at Urbana-Champaign, Sep. 2014. Received the 2015 David J. Kuck Outstanding Ph.D. Thesis Award, the Honorable Mention for the 2014 ACM SIGOPS Dennis M. Ritchie Doctoral Dissertation Award, and an Honorable Mention for the 2014 ACM Doctoral Dissertation Award.
"pocl: A Performance-Portable OpenCL Implementation" Pekka Jääskeläinen, Carlos Sánchez de La Lama, Erik Schnetter, Kalle Raiskila, Jarmo Takala, Heikki Berg International Journal of Parallel Programming (IJPP), Aug. 2014.
"Proving Termination and Memory Safety for Programs with Pointer Arithmetic" Thomas Ströder, Jürgen Giesl, Marc Brockschmidt, Florian Frohn, Carsten Fuhs, Jera Hensel, and Peter Schneider-Kamp Proceedings of the Seventh International Joint Conference on Automated Reasoning (IJCAR 2014), July 2014.
"LORAIN: A Step Closer to the PDES 'Holy Grail'" Justin M. LaPre, Elsa J. Gonsiorowski, and Christopher D. Carothers Proceedings of the Second ACM SIGSIM/PADS Conference on Principles of Advanced Discrete Simulation (SIGSIM-PADS 2014), May 2014.
"Safe and Automatic Live Update" Cristiano Giuffrida Ph.D. Dissertation, Vrije University Amsterdam, The Netherlands, Apr. 2014. Received the 2015 EuroSys Roger Needham Award and the 2015 ACM SIGOPS Dennis M. Ritchie Doctoral Dissertation Award.
"Formal Verification of SSA Optimizations for LLVM" Jianzhou Zhao, Santosh Nagarakatte, Milo M K Martin, and Steve Zdancewic Proceedings of the Thirty Fourth ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2013), June 2013.
"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.
"Safe and Automatic Live Update for Operating Systems" Cristiano Giuffrida, Anton Kuijsten, and Andrew S. Tanenbaum Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013.
"Parallelizing Data Race Detection" Benjamin Wester, David Devecsery, Peter M. Chen, Jason Flinn, and Satish Narayanasamy Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013.
"DeAliaser: Alias Speculation using Atomic Region Support" Wonsun Ahn, Yuelu Duan, and Josep Torrellas Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013.
"STABILIZER: Statistically Sound Performance Evaluation" Charlie Curtsinger and Emery D. Berger Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013.
"Verifying Systems Rules Using Rule-Directed Symbolic Execution" Heming Cui, Gang Hu, Jingyue Wu, and Junfeng Yang Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013.
"Practical Automatic Loop Specialization" Taewook Oh, Hanjun Kim, Nick P. Johnson, Jae W. Lee, and David I. August Proceedings of the Eighteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013), Mar. 2013.
"Profile-guided Automated Software Diversity" Andrei Homescu, Steven Neisius, Per Larsen, Stefan Brunthaler, and Michael Franz Proceedings of the 2013 International Symposium on Code Generation and Optimization (CGO 2013), Feb. 2013.
"Harmony: Collection and Analysis of Parallel Block Vectors" Melanie Kambadur, Kui Tang, and Martha Kim Proceedings of the International Symposium on Computer Architecture (ISCA '12), June 2012. Top Picks in Computer Architecture Selection.
"AddressSanitizer: A Fast Address Sanity Checker" Konstantin Serebryany, Derek Bruening, Alexander Potapenko, Dmitry Vyukov Proc. of the 2012 USENIX Annual Technical Conference, June 2012.
"Understanding Integer Overflow in C/C++" Will Dietz, Peng Li, John Regehr, Vikram Adve Proc. of the 2012 International Conference on Software Engineering (ICSE'12), June 2012. Received an ACM SIGSOFT Distinguished Paper Award.
"The Click2NetFPGA toolchain" Teemu Rinta-Aho, Mika Karlstedt, and Madhav P. Desai Proceedings of the 2012 USENIX Annual Technical Conference, Boston, MA, June 2012.
"Debugging the Data Plane with Anteater" search Haohui Mai, Ahmed Khurshid, Rachit Agarwal, Matthew Caesar, P. Brighten Godfrey, and Samuel T. King Annual Conference of the ACM Special Interest Group on Data Communication (SIGCOMM), Aug. 2011.
"Automatic CPU-GPU Communication Management and Optimization" Thomas B. Jablin, Prakash Prabhu, James A. Jablin, Nick P. Johnson, Stephen R. Beard, and David I. August ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), June 2011.
"On the Theory and Potential of LRU-MRU Collaborative Cache Management" search Xiaoming Gu and Chen Ding International Symposium on Memory Management (ISMM), June 2011.
"A Predictable Execution Model for COTS-Based Embedded Systems" search Rodolfo Pellizzoni, Emiliano Betti, Stanley Bak, Gang Yao, John Criswell, Marco Caccamo, and Russell Kegley Real-Time and Embedded Technology and Applications Symposium (RTAS), Apr. 2011.
"Flow-Sensitive Pointer Analysis for Millions of Lines of Code" search Ben Hardekopf and Calvin Lin International Symposium on Code Generation and Optimization (CGO), Apr. 2011.
"Whole-Function Vectorization" search Ralf Karrenberg International Symposium on Code Generation and Optimization (CGO), Apr. 2011.
"S2E: A Platform for In-Vivo Multi-Path Analysis of Software Systems" Vitaly Chipounov, Volodymyr Kuznetsov, and George Candea Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2011), Mar. 2011.
"We Crashed, Now What?" Cristiano Giuffrida, Lorenzo Cavallaro, and Andrew S. Tanenbaum Proc. of the 6th Workshop on Hot Topics in System Dependability (HotDep '10), Vancouver, BC, Canada, Oct. 2010.
"Efficient SSI Conversion" André Tavares, Fernando Magno Pereira, Mariza Bigonha and Roberto Bigonha Brazilian Symposium on Programming Languages 2010, Salvador, Brazil, Sep. 2010.
"CETS: Compiler Enforced Temporal Safety for C" Santosh Nagarakatte, Jianzhou Zhao, Milo M K Martin and Steve Zdancewic Proc. of the 2010 International Symposium on Memory Management, June 2010.
"Clang/LLVM Maturity Report" Dominic Fandrey Proceedings of the Summer 2010 Research Seminar, June 2010.
"Quality of Service Profiling" Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, Martin Rinard Proc. of the 2010 IEEE 32st International Conference on Software Engineering (ICSE'10), Cape Town, South Africa, May 2010.
"VMKit: a Substrate for Managed Runtime Environments" Nicolas Geoffray, Gael Thomas, Julia Lawall, Gilles Muller, and Bertil Folliot Proc. of the Virtual Execution Environments Conference (VEE '10), Pittsburgh, PA, Mar. 2010.
"Modeling GPU-CPU Workloads and Systems" Andrew Kerr, Gregory Diamos, and Sudhakar Yalamanchili Proc. of the 3rd Workshop on General-Purpose Computation on Graphics Processing Units (GPGPU-3), Pittsburgh, PA, Mar. 2010.
"Shoestring: Probabilistic Soft Error Reliability on the Cheap" Shuguang Feng, Shantanu Gupta, Amin Ansari, and Scott Mahlke Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10), Pittsburgh, PA, Mar. 2010.
"Orthrus: Efficient Software Integrity Protection on Multi-core" Ruirui Huang, Daniel Y. Deng, G. Edward Suh Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10), Pittsburgh, PA, Mar. 2010.
"Conservation Cores: Reducing the Energy of Mature Computations" Ganesh Venkatesh, Jack Sampson, Nathan Goulding, Saturnino Garcia, Vladyslav Bryksin, Jose Lugo-Martinez, Steven Swanson, Michael Bedford Taylor Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10), Pittsburgh, PA, Mar. 2010.
"Speculative Parallelization using Software Multi-Threaded Transactions" Arun Raman, Hanjun Kim, Thomas R. Mason, Thomas B. Jablin, David I. August Proc. of the Fifteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '10), Pittsburgh, PA, Mar. 2010.
"Automatic Restructuring of Linked Data Structures" H.L.A. van der Spek, C.W.M. Holm and H.A.G. Wijshof Proc. of the 22nd International Workshop on Languages and Compilers for Parallel Computing (LCPC'09), Newark, DE, Oct. 2009.
"Progressive spill code placement" Dietmar Ebner, Bernhard Scholz, and Andreas Krall Proc. of the 2009 international conference on Compilers, architecture, and synthesis for embedded systems (CASES'09), Grenoble, France, Oct. 2009.
"TotalProf: a fast and accurate retargetable source code profiler" Lei Gao, Jia Huang, Jianjiang Ceng, Rainer Leupers, Gerd Ascheid, and Heinrich Meyr Proc. of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis (CODES+ISSS'09), Grenoble, France, Oct. 2009.
"A High-Level Virtual Platform for Early MPSoC Software Development" Jianjiang Ceng, Weihua Sheng, Jeronimo Castrillon, Anastasia Stulova, Rainer Leupers, Gerd Ascheid and Heinrich Meyr Proc. of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis (CODES+ISSS'09), Grenoble, France, Oct. 2009.
"AN-Encoding Compiler: Building Safety-Critical Systems with Commodity Hardware" search Christof Fetzer, Ute Schiffel, and Martin SuBkraut 28th International Conference, SAFECOMP 2009, Hamburg, Germany, Sep. 2009.
"Performance Modelling for Avionics Systems" search Visar Januzaj, Ralf Mauersberger and Florian Biechele Computer Aided Systems Theory (EUROCAST 2009), , Sep. 2009.
"Automatic Generation of Cycle-Approximate TLMs with Timed RTOS Model Support" search Yonghyun Hwang, Gunar Schirner, and Samar Abdi Analysis, Architectures and Modelling of Embedded Systems 2009 (IESS 2009), Langenargen, Germany, Sep. 2009.
"API hyperlinking via structural overlap" Fan Long, Xi Wang, and Yang Cai Proc. of the ACM symposium on The foundations of software engineering symposium (FSE'09), Amsterdam, The Netherlands, Aug. 2009.
"Zoltar: a spectrum-based fault localization tool" Tom Janssen, Rui Abreu, and Arjan J.C. van Gemund Proc. of the 2009 ESEC/FSE workshop on Software integration and evolution @ runtime, Amsterdam, The Netherlands, Aug. 2009.
"BegBunch: benchmarking for C bug detection tools" Cristina Cifuentes, Christian Hoermann, Nathan Keynes, Lian Li, Simon Long, Erica Mealy, Michael Mounteney, and Bernhard Scholz Proc. of the 2nd International Workshop on Defects in Large Software Systems: Held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2009), Chicago, Illinois, July 2009.
"Verifying the Implementation of an Operating System Scheduler" search Moritz Kleine, Bjorn Bartels, Thomas Gothel, and Sabine Glesner IEEE International Symposium on Theoretical Aspects of Software Engineering, Tianjin, China, July 2009.
"Programmable and Scalable Architecture for Graphics Processing Units" search Carlos S. Lama, Pekka Jaaskelainen, Jarmo Takala Proc. of the 9th International Workshop on Embedded Computer Systems: Architectures, Modeling, and Simulation, Samos, Greece, July 2009.
"Automatic Packetization" Ralf Karrenberg Master's Thesis, Universität des Saarlandes, Saarbrücken, Germany, July 2009.
"Automatic generation of library bindings using static analysis" Tristan Ravitch, Steve Jackson, Eric Aderhold, and Ben Liblit Proc. ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI'09), Dublin, Ireland, June 2009.
"Selective Symbolic Execution" Vitaly Chipounov, Vlad Georgescu, Cristian Zamfir, and George Candea Proc. Fifth Workshop on Hot Topics in System Dependability (HotDep'09), Lisbon, Portugal, June 2009.
"Register allocation deconstructed" David Ryan Koes and Seth Copen Goldstein Proc. of the 12th International Workshop on Software and Compilers for Embedded Systems (SCOPES'09), Nice, France, Apr. 2009.
"Scheduling Techniques for Multi-Core Architectures" search Akira Hatanaka and Nader Bagherzadeh 2009 Sixth International Conference on Information Technology: New Generations, Apr. 2009.
"DMP: deterministic shared memory multiprocessing" Joseph Devietti, Brandon Lucia, Luis Ceze, and Mark Oskin Proc. of the Fourteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '09), Mar. 2009.
"SORU: A Reconfigurable Vector Unit for Adaptable Embedded Systems" search José M. Moya, Javier Rodríuez, et al Proc. of the 5th International Workshop on Reconfigurable Computing: Architectures, Tools and Applications, Mar. 2009.
"Compiling Techniques for Coarse Grained Runtime Reconfigurable Architecture" search Mythri Alle, Keshavan Varadarajan, Alexander Fell, S. K. Nandy and Ranjani Narayan Proc. of the 5th International Workshop on Reconfigurable Computing: Architectures, Tools and Applications, Mar. 2009.
"Semi-sparse flow-sensitive pointer analysis" Ben Hardekopf and Calvin Lin Proc. of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL'09), Savannah, GA, USA, Jan. 2009.
"A Scalable Memory Model for Low-Level Code" Zvonimir Rakamaric and Alan J. Hu Proc. of the 10th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI 2009), Savannah, GA, USA, Jan. 2009.
"Program Analysis for Bug Detection using Parfait" Cristina Cifuentes, Nathan Keynes, Lian Li, and Bernhard Scholz Proc. of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation (PEPM'09), Savannah, GA, USA, Jan. 2009.
"MC-Sim: an efficient simulation tool for MPSoC designs" Jason Cong, Karthik Gururaj, Guoling Han, Adam Kaplan, Mishali Naik, and Glenn Reinman Proc. of the 2008 IEEE/ACM International Conference on Computer-Aided Design (ICCAD'08), San Jose, CA, Nov. 2008.
"Program analysis for compiler validation" Anna Zaks and Amir Pnueli Proc. of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering (PASTE'08), Atlanta, Georgia, Nov. 2008.
"Execution Context Optimization for Disk Energy" Jerry Hom and Ulrich Kremer Proc. of the 2008 international conference on Compilers, architectures and synthesis for embedded systems (CASES'08), Oct. 2008.
"Real-Time Ray Tracing of Dynamic Scenes" Stephan Reiter Diploma Thesis, Institute for Graphics and Parallel Processing, Johannes Kepler University, Linz, Austria, June 2008.
"Compiling Haskell to LLVM" John van Schie Thesis Defense, Utrecht University, Netherlands, June 2008.
"Generalized Instruction Selection using SSA-Graphs" Dietmar Ebner, Florian Brandner, Bernhard Scholz, Andreas Krall, Peter Wiedermann and Albrecht Kadlec Proc. Languages Compilers and Tools for Embedded Systems 2008 (LCTES'08), June 2008.
"Register Allocation by Puzzle Solving" Fernando Magno Quintao Pereira and Jens Palsberg Proc. ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation (PLDI'08), June 2008.
"Near-Optimal Instruction Selection on DAGs" David Ryan Koes and Seth Copen Goldstein Proc. of the 2008 International Symposium on Code Generation and Optimization (CGO'08), Boston, MA, 2008.
"Toward Application-Aware Security and Reliability" Ravishankar K. Iyer, Zbigniew Kalbarczyk, Karthik Pattabiraman, William Healey, Wen-Mei W. Hwu, Peter Klemperer, and Reza Farivar IEEE Security and Privacy, Jan. 2007.
2006
"Scaling Task Graphs for Network Processors" Martin Labrecque and J. Gregory Steffan IFIP International Conference on Network and Parallel Computing, Tokyo, Japan, Oct. 2006.
"SAFECode: Enforcing Alias Analysis for Weakly Typed Languages" Dinakar Dhurjati, Sumant, Kowshik, and Vikram Adve Proc. of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '06), Ottawa, Canada, June 2006.
"Segment Protection for Embedded Systems Using Run-time Checks" By Matthew Simpson, Bhuvan Middha and Rajeev Barua Proc. of the ACM International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES'05), San Francisco, CA, Sep. 2005.
"RubyComp - A Ruby-to-LLVM Compiler Prototype" Anders Alexandersson Masters Thesis, Division of Computer Science at the Department of Informatics and Mathematics, University of Trollhättan/Uddevalla, Sweden, 2004.
"A Task Optimization Framework for MSSP" Rahul Ulhas Joshi Masters Thesis, Computer Science Dept., University of Illinois at Urbana-Champaign, May 2004.
"Coordinating Adaptations in Distributed Systems" Brian Ensink and Vikram Adve Proc. of the 24th International Conference on Distributed Computing Systems (ICDCS 2004), Tokyo, Japan, Mar. 2004.
"LLVA: A Low-level Virtual Instruction Set Architecture" Vikram Adve, Chris Lattner, Michael Brukman, Anand Shukla, and Brian Gaeke Proc. of the 36th annual ACM/IEEE International Symposium on Microarchitecture (MICRO-36), San Diego, CA, Dec. 2003.