skip to main content
10.1145/3620666.3651366acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

SIRO: Empowering Version Compatibility in Intermediate Representations via Program Synthesis

Published: 27 April 2024 Publication History

Abstract

This paper presents Siro, a new program transformation framework that translates between different versions of Intermediate Representations (IR), aiming to better address the issue of IR version incompatibility on IR-based software, such as static analyzers. We introduce a generic algorithm skeleton for Siro based on the divide-and-conquer principle. To minimize labor-intensive tasks of the implementation process, we further employ program synthesis to automatically generate translators for IR instructions within vast search spaces. Siro is instantiated on LLVM IR and has effectively helped to produce ten well-functioning IR translators for different version pairs, each taking less than three hours. From a practical perspective, we utilize these translators to assist static analyzers and fuzzers in reporting bugs and achieving accuracy of 91% and 95%, respectively. Remarkably, Siro has already been deployed in real-world scenarios and makes existing static analyzers available to safeguard the Linux kernel by uncovering 80 new vulnerabilities.

References

[1]
AFL. American fuzzy lop. https://lcamtuf.coredump.cx/afl/, 2022.
[2]
Karan Aggarwal, Mohammad Salameh, and Abram Hindle. Using machine translation for converting python 2 to python 3 code. PeerJ Prepr., 3:e1459, 2015.
[3]
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, techniques, and tools. In Addison-Wesley series in computer science / World student series edition, 1986.
[4]
Domagoj Babic and Alan J. Hu. Calysto: Scalable and precise extended static checking. In Proceedings of the 30th International Conference on Software Engineering, ICSE '08, page 211--220, New York, NY, USA, 2008. Association for Computing Machinery.
[5]
Alexandre Bartel, Jacques Klein, Yves Le Traon, and Martin Monperrus. Dexpler: Converting android dalvik bytecode to jimple for static analysis with soot. In Proceedings of the ACM SIGPLAN International Workshop on State of the Art in Java Program Analysis, SOAP '12, page 27--38, New York, NY, USA, 2012. Association for Computing Machinery.
[6]
Ira D. Baxter, Andrew Yahin, Leonardo Mendonça de Moura, Marcelo Sant'Anna, and Lorraine Bier. Clone detection using abstract syntax trees. Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272), pages 368--377, 1998.
[7]
Benoit Boissinot, Philip Brisk, Alain Darte, and Fabrice Rastello. Ssi properties revisited. ACM Trans. Embed. Comput. Syst., 11S(1), jun 2012.
[8]
Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan, Rewon Child, Aditya Ramesh, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter, Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray, Benjamin Chess, Jack Clark, Christopher Berner, Sam McCandlish, Alec Radford, Ilya Sutskever, and Dario Amodei. Language models are few-shot learners. In Hugo Larochelle, Marc'Aurelio Ranzato, Raia Hadsell, Maria-Florina Balcan, and Hsuan-Tien Lin, editors, Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual, 2020.
[9]
Cristian Cadar, Daniel Dunbar, and Dawson Engler. Klee: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, OSDI'08, page 209--224, USA, 2008. USENIX Association.
[10]
Yuandao Cai and Charles Zhang. A cocktail approach to practical call graph construction. Proc. ACM Program. Lang., 7(OOPSLA2), oct 2023.
[11]
Stefanos Chaliasos, Thodoris Sotiropoulos, Diomidis Spinellis, Arthur Gervais, Benjamin Livshits, and Dimitris Mitropoulos. Finding typing compiler bugs. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2022, page 183--198, New York, NY, USA, 2022. Association for Computing Machinery.
[12]
Peng Chen and Hao Chen. Angora: Efficient fuzzing by principled search. In 2018 IEEE Symposium on Security and Privacy (SP), pages 711--725, 2018.
[13]
Peng Chen, Jianzhong Liu, and Hao Chen. Matryoshka: Fuzzing deeply nested branches. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security, CCS '19, page 499--513, New York, NY, USA, 2019. Association for Computing Machinery.
[14]
Vitaly Chipounov, Volodymyr Kuznetsov, and George Candea. S2e: A platform for in-vivo multi-path analysis of software systems. Acm Sigplan Notices, 46(3):265--278, 2011.
[15]
Fred Chow. Intermediate representation: The increasing significance of intermediate representations in compilers. Queue, 11(10):30--37, oct 2013.
[16]
Cliff Click and Michael H. Paleczny. A simple graph-based intermediate representation. In ACM SIGPLAN Workshop on Intermediate Representations, 1995.
[17]
James Cordy. The txl source transformation language. Science of Computer Programming, 61:190--210, 08 2006.
[18]
Ronald Gary Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst., 13:451--490, 1991.
[19]
Brian Davis, Andrew Beatty, Kevin Casey, David Gregg, and John Waldron. The case for virtual register machines. In Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators, IVME '03, page 41--49, New York, NY, USA, 2003. Association for Computing Machinery.
[20]
Premkumar T. Devanbu. Genoa: A customizable language- and front-end independent code analyzer. In Proceedings of the 14th International Conference on Software Engineering, ICSE '92, page 307--317, New York, NY, USA, 1992. Association for Computing Machinery.
[21]
Premkumar T. Devanbu, David S. Rosenblum, and Alexander L. Wolf. Automated construction of testing and analysis tools. In Proceedings of the 16th International Conference on Software Engineering, ICSE '94, page 241--250, Washington, DC, USA, 1994. IEEE Computer Society Press.
[22]
Zhengjie Du, Yuekang Li, Yang Liu, and Bing Mao. Windranger: A directed greybox fuzzer driven by deviation basic blocks. In Proceedings of the 44th International Conference on Software Engineering, ICSE '22, page 2440--2451, New York, NY, USA, 2022. Association for Computing Machinery.
[23]
Gang Fan, Rongxin Wu, Qingkai Shi, Xiao Xiao, Jinguo Zhou, and Charles Zhang. Smoke: Scalable path-sensitive memory leak detection for millions of lines of code. 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), pages 72--82, 2019.
[24]
Mathieu Fehr, Jeff Niu, River Riddle, Mehdi Amini, Zhendong Su, and Tobias Grosser. Irdl: An ir definition language for ssa compilers. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2022, page 199--212, New York, NY, USA, 2022. Association for Computing Machinery.
[25]
Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, and Thomas W. Reps. Component-based synthesis for complex apis. In Giuseppe Castagna and Andrew D. Gordon, editors, Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, January 18-20, 2017, pages 599--612. ACM, 2017.
[26]
Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst., 9(3):319--349, jul 1987.
[27]
Andrea Fioraldi, Dominik Christian Maier, Heiko Eißfeldt, and Marc Heuse. AFL++ : Combining incremental steps of fuzzing research. In Yuval Yarom and Sarah Zennou, editors, 14th USENIX Workshop on Offensive Technologies, WOOT 2020, August 11, 2020. USENIX Association, 2020.
[28]
Firefox. Firefox's building requirement on clang-11. https://firefox-source-docs.mozilla.org/build/buildsystem/toolchains.html, 2023.
[29]
Jack Garzella, Marek Baranowski, Shaobo He, and Zvonimir Rakamaric. Leveraging compiler intermediate representation for multi- and cross-language verification. In Dirk Beyer and Damien Zufferey, editors, Proceedings of the 21st International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI), volume 11990 of Lecture Notes in Computer Science, pages 90--111. Springer, 2020.
[30]
GCC. Gcc backward compatibility. https://gcc.gnu.org/onlinedocs/libstdc++/manual/backwards.html, 2022.
[31]
GCC. Gcc, the gnu compiler collection. https://gcc.gnu.org/, 2023.
[32]
James Gosling. Java intermediate bytecodes: Acm sigplan workshop on intermediate representations (ir'95). SIGPLAN Not., 30(3):111--118, mar 1995.
[33]
Sumit Gulwani, Vijay Anand Korthikanti, and Ashish Tiwari. Synthesizing geometry constructions. In Mary W. Hall and David A. Padua, editors, Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011, San Jose, CA, USA, June 4-8, 2011, pages 50--61. ACM, 2011.
[34]
Zheng Guo, David Cao, Davin Tjong, Jean Yang, Cole Schlesinger, and Nadia Polikarpova. Type-directed program synthesis for restful apis. In PLDI '22: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, CA, USA, June 13 - 17, 2022, pages 122--136. ACM, 2022.
[35]
Zheng Guo, Michael James, David Justo, Jiaxiao Zhou, Ziteng Wang, Ranjit Jhala, and Nadia Polikarpova. Program synthesis by type-guided abstraction refinement. Proc. ACM Program. Lang., 4(POPL):12:1--12:28, 2020.
[36]
Tihomir Gvero, Viktor Kuncak, Ivan Kuraj, and Ruzica Piskac. Complete completion using types and weights. In Hans-Juergen Boehm and Cormac Flanagan, editors, ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '13, Seattle, WA, USA, June 16-19, 2013, pages 27--38. ACM, 2013.
[37]
Alex Gyori, Lyle Franklin, Danny Dig, and Jan Lahoda. Crossing the gap from imperative to functional programming through refactoring. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, page 543--553, New York, NY, USA, 2013. Association for Computing Machinery.
[38]
Mary Jean Harrold, James A. Jones, Tongyu Li, Donglin Liang, Alessandro Orso, Maikel Pennings, Saurabh Sinha, S. Alexander Spoon, and Ashish Gujarathi. Regression test selection for java software. In Proceedings of the 16th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA '01, page 312--326, New York, NY, USA, 2001. Association for Computing Machinery.
[39]
James Hayes, William G. Griswold, and Stuart Moskovics. Component design of retargetable program analysis tools that reuse intermediate representations. In Proceedings of the 22nd International Conference on Software Engineering, ICSE '00, page 356--365, New York, NY, USA, 2000. Association for Computing Machinery.
[40]
Ahmad Hazimeh, Adrian Herrera, and Mathias Payer. Magma: A ground-truth fuzzing benchmark. In Longbo Huang, Anshul Gandhi, Negar Kiyavash, and Jia Wang, editors, SIGMETRICS '21: ACM SIGMETRICS / International Conference on Measurement and Modeling of Computer Systems, Virtual Event, China, June 14-18, 2021, pages 81--82. ACM, 2021.
[41]
Jaemin Hong and Sukyoung Ryu. Concrat: An automatic c-to-rust lock API translator for concurrent programs. CoRR, abs/2301.10943, 2023.
[42]
Heqing Huang, Yiyuan Guo, Qingkai Shi, Peisen Yao, Rongxin Wu, and Charles Zhang. Beacon: Directed grey-box fuzzing with provable path pruning. In 2022 IEEE Symposium on Security and Privacy (SP), pages 36--50, 2022.
[43]
Michael B. James, Zheng Guo, Ziteng Wang, Shivani Doshi, Hila Peleg, Ranjit Jhala, and Nadia Polikarpova. Digging for fold: synthesis-aided API discovery for haskell. Proc. ACM Program. Lang., 4(OOPSLA):205:1--205:27, 2020.
[44]
JDK. Jdk backward compatibility. https://blogs.oracle.com/java/post/upgrading-major-java-versions, 2022.
[45]
Dae R. Jeong, Kyungtae Kim, Basavesh Shivakumar, Byoungyoung Lee, and Insik Shin. Razzer: Finding kernel race bugs through fuzzing. In 2019 IEEE Symposium on Security and Privacy (SP), pages 754--768, 2019.
[46]
Susmit Jha, Sumit Gulwani, Sanjit A. Seshia, and Ashish Tiwari. Oracle-guided component-based program synthesis. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, ICSE 2010, Cape Town, South Africa, 1-8 May 2010, pages 215--224. ACM, 2010.
[47]
Timotej Kapus, Oren Ish-Shalom, Shachar Itzhaky, Noam Rinetzky, and Cristian Cadar. Computing summaries of string loops in C for better testing and refactoring. In Kathryn S. McKinley and Kathleen Fisher, editors, Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, June 22-26, 2019, pages 874--888. ACM, 2019.
[48]
Kyungtae Kim, Dae R Jeong, Chung Hwan Kim, Yeongjin Jang, Insik Shin, and Byoungyoung Lee. Hfl: Hybrid fuzzing on the linux kernel. In NDSS, 2020.
[49]
Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasilache, and Oleksandr Zinenko. Mlir: Scaling compiler infrastructure for domain specific computation. In 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pages 2--14, 2021.
[50]
Vu Le, Mehrdad Afshari, and Zhendong Su. Compiler validation via equivalence modulo inputs. In Michael F. P. O'Boyle and Keshav Pingali, editors, ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '14, Edinburgh, United Kingdom - June 09 - 11, 2014, pages 216--226. ACM, 2014.
[51]
Juneyoung Lee, Yoonseung Kim, Youngju Song, Chung-Kil Hur, Sanjoy Das, David Majnemer, John Regehr, and Nuno P. Lopes. Taming undefined behavior in llvm. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, page 633--647, New York, NY, USA, 2017. Association for Computing Machinery.
[52]
Guilherme Vieira Leobas and Fernando Magno Quintão Pereira. Semiring optimizations: dynamic elision of expressions with identity and absorbing elements. Proceedings of the ACM on Programming Languages, 4(OOPSLA):1--28, 2020.
[53]
Shaohua Li and Zhendong Su. Finding unstable code via compiler-driven differential testing. In Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3, ASPLOS 2023, page 238--251, New York, NY, USA, 2023. Association for Computing Machinery.
[54]
Yue Li, Tian Tan, Anders Møller, and Yannis Smaragdakis. A principled approach to selective context sensitivity for pointer analysis. ACM Trans. Program. Lang. Syst., 42(2), may 2020.
[55]
Zongjie Li, Pingchuan Ma, Huaijin Wang, Shuai Wang, Qiyi Tang, Sen Nie, and Shi Wu. Unleashing the power of compiler intermediate representation to enhance neural program embeddings. In Proceedings of the 44th International Conference on Software Engineering, ICSE '22, page 2253--2265, New York, NY, USA, 2022. Association for Computing Machinery.
[56]
Linux. Linux kernel's building requirement on clang-11. https://www.kernel.org/doc/html/latest/process/changes.html, 2023.
[57]
Vsevolod Livinskii, Dmitry Babokin, and John Regehr. Random testing for c and c++ compilers with yarpgen. Proc. ACM Program. Lang., 4(OOPSLA), nov 2020.
[58]
LLVM. Proposal of llvm-upgrader. https://releases.llvm.org/2.0/docs/CommandGuide/html/llvm-upgrade.html, 2007.
[59]
LLVM. Llvm backward compatibility. https://llvm.org/docs/DeveloperPolicy.html#ir-backwards-compatibility, 2022.
[60]
LLVM. The llvm compiler infrastructure. https://llvm.org/, 2023.
[61]
LLVM. Llvm test guide. https://llvm.org/docs/TestingGuide.html, 2023.
[62]
LLVM. Llvm's building requirement on clang-5. https://llvm.org/docs/GettingStarted.html, 2023.
[63]
llvm dev. Llvm bc converter from llvm 3.9 to llvm 3.1, 2016.
[64]
llvm dev. Llvm error handling mechanism, 2023.
[65]
Nuno P. Lopes, Juneyoung Lee, Chung-Kil Hur, Zhengyang Liu, and John Regehr. Alive2: Bounded translation validation for llvm. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021, page 65--79, New York, NY, USA, 2021. Association for Computing Machinery.
[66]
Nuno P. Lopes, David Menendez, Santosh Nagarakatte, and John Regehr. Practical verification of peephole optimizations with alive. Commun. ACM, 61(2):84--91, jan 2018.
[67]
Kangjie Lu and Hong Hu. Where does it go? refining indirect-call targets with multi-layer type analysis. In Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security, CCS '19, page 1867--1881, New York, NY, USA, 2019. Association for Computing Machinery.
[68]
Benjamin Mariano, Yanju Chen, Yu Feng, Greg Durrett, and Işil Dillig. Automated transpilation of imperative to functional code using neural-guided program synthesis. Proc. ACM Program. Lang., 6(OOPSLA1), apr 2022.
[69]
I. A. Natour. On the control dependence in the program dependence graph. In Proceedings of the 1988 ACM Sixteenth Annual Conference on Computer Science, CSC '88, page 510--519, New York, NY, USA, 1988. Association for Computing Machinery.
[70]
OCaml. ppxlib: Base library and tools for ppx rewriters, 2024.
[71]
Long Ouyang, Jef Wu, Xu Jiang, Diogo Almeida, Carroll L. Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, John Schulman, Jacob Hilton, Fraser Kelton, Luke Miller, Maddie Simens, Amanda Askell, Peter Welinder, Paul F. Christiano, Jan Leike, and Ryan Lowe. Training language models to follow instructions with human feedback. CoRR, abs/2203.02155, 2022.
[72]
Daniel Perelman, Sumit Gulwani, Thomas Ball, and Dan Grossman. Type-directed completion of partial expressions. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '12, Beijing, China - June 11 - 16, 2012, pages 275--286. ACM, 2012.
[73]
QT. Qt-5.12's building requirement on clang-7. https://doc.qt.io/archives/qt-5.12/supported-platforms.html, 2023.
[74]
R8. R8 compiler for java. https://r8.googlesource.com/r8/+/refs/heads/main/README.md, 2022.
[75]
Zvonimir Rakamarić and Michael Emmi. Smack: Decoupling source language details from verifier implementations. In Computer Aided Verification: 26th International Conference, CAV 2014, Held as Part of the Vienna Summer of Logic, VSL 2014, Vienna, Austria, July 18-22, 2014. Proceedings 26, pages 106--113. Springer, 2014.
[76]
Xiaolei Ren, Michael Ho, Jiang Ming, Yu Lei, and Li Li. Unleashing the hidden power of compiler optimization on binary code difference: An empirical study. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021, page 142--157, New York, NY, USA, 2021. Association for Computing Machinery.
[77]
G. Rothermel and M.J. Harrold. Analyzing regression test selection techniques. IEEE Transactions on Software Engineering, 22(8):529--551, 1996.
[78]
Rust. A pull request about upgrading llvm in rust project. https://github.com/rust-lang/rust/pull/34743, 2016.
[79]
Malavika Samak, Deokhwan Kim, and Martin C. Rinard. Synthesizing replacement classes. Proc. ACM Program. Lang., 4(POPL):52:1--52:33, 2020.
[80]
Philipp Dominik Schubert, Ben Hermann, and Eric Bodden. Phasar: An inter-procedural static analysis framework for c/c++. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pages 393--410. Springer, 2019.
[81]
Jiasi Shen and Martin C. Rinard. Using active learning to synthesize models of applications that access databases. In Kathryn S. McKinley and Kathleen Fisher, editors, Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, Phoenix, AZ, USA, June 22-26, 2019, pages 269--285. ACM, 2019.
[82]
Qingkai Shi, Xiao Xiao, Rongxin Wu, Jinguo Zhou, Gang Fan, and Charles Zhang. Pinpoint: Fast and precise sparse value flow analysis for million lines of code. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, page 693--706, New York, NY, USA, 2018. Association for Computing Machinery.
[83]
Michelle Mills Strout, John Mellor-Crummey, and Paul Hovland. Representation-independent program analysis. In Proceedings of the 6th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, PASTE '05, page 67--74, New York, NY, USA, 2005. Association for Computing Machinery.
[84]
Yulei Sui and Jingling Xue. Svf: Interprocedural static value-flow analysis in llvm. In Proceedings of the 25th International Conference on Compiler Construction, CC 2016, page 265--266, New York, NY, USA, 2016. Association for Computing Machinery.
[85]
Gil Teixeira, João Bispo, and Filipe F. Correia. Multi-language static code analysis on the lara framework. In Proceedings of the 10th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis, SOAP 2021, page 31--36, New York, NY, USA, 2021. Association for Computing Machinery.
[86]
Nikos Vasilakis, Achilles Benetopoulos, Shivam Handa, Alizee Schoen, Jiasi Shen, and Martin C. Rinard. Supply-chain vulnerability elimination via active learning and regeneration. In Yongdae Kim, Jong Kim, Giovanni Vigna, and Elaine Shi, editors, CCS '21: 2021 ACM SIGSAC Conference on Computer and Communications Security, Virtual Event, Republic of Korea, November 15 - 19, 2021, pages 1755--1770. ACM, 2021.
[87]
Chengpeng Wang, Peisen Yao, Wensheng Tang, Qingkai Shi, and Charles Zhang. Complexity-guided container replacement synthesis. Proc. ACM Program. Lang., 6(OOPSLA1), apr 2022.
[88]
Wenwen Wang, Stephen McCamant, Antonia Zhai, and Pen-Chung Yew. Enhancing cross-isa DBT through automatically learned translation rules. In Xipeng Shen, James Tuck, Ricardo Bianchini, and Vivek Sarkar, editors, Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 2018, Williamsburg, VA, USA, March 24-28, 2018, pages 84--97. ACM, 2018.
[89]
Yichen Xie and Alexander Aiken. Scalable error detection using boolean satisfiability. In Jens Palsberg and Martín Abadi, editors, Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2005, Long Beach, California, USA, January 12-14, 2005, pages 351--363. ACM, 2005.
[90]
Xuejun Yang, Yang Chen, Eric Eide, and John Regehr. Finding and understanding bugs in c compilers. SIGPLAN Not., 46(6):283--294, jun 2011.
[91]
Xiaolan Zhang, Larry Koved, Marco Pistoia, Sam Weber, Trent Jaeger, Guillaume Marceau, and Liangzhao Zeng. The case for analysis preserving language transformation. In Proceedings of the 2006 International Symposium on Software Testing and Analysis, ISSTA '06, page 191--202, New York, NY, USA, 2006. Association for Computing Machinery.

Cited By

View all
  • (2024)REACT: IR-Level Patch Presence Test for BinaryProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695012(381-392)Online publication date: 27-Oct-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS '24: Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3
April 2024
1106 pages
ISBN:9798400703867
DOI:10.1145/3620666
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 April 2024

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

ASPLOS '24

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)219
  • Downloads (Last 6 weeks)38
Reflects downloads up to 28 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)REACT: IR-Level Patch Presence Test for BinaryProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695012(381-392)Online publication date: 27-Oct-2024

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media