Dynamic dispatch of context-sensitive optimizations
Academia has spent much effort into making context-sensitive analyses practical, with great profit. However, the implementation of context-sensitive optimizations, in contrast to analyses, is still not practical, due to code-size explosion. This growth happens because current technology requires the...
Uloženo v:
| Vydáno v: | Proceedings of ACM on programming languages Ročník 4; číslo OOPSLA; s. 1 - 28 |
|---|---|
| Hlavní autoři: | , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
New York, NY, USA
ACM
13.11.2020
|
| Témata: | |
| ISSN: | 2475-1421, 2475-1421 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Academia has spent much effort into making context-sensitive analyses practical, with great profit. However, the implementation of context-sensitive optimizations, in contrast to analyses, is still not practical, due to code-size explosion. This growth happens because current technology requires the cloning of full paths in the Calling Context Tree. In this paper, we present a solution to this problem. We combine finite state machines and dynamic dispatching to allow fully context-sensitive specialization while cloning only functions that are effectively optimized. This technique makes it possible to apply very liberal optimizations, such as context-sensitive constant propagation, in large programs—something that could not have been easily done before. We demonstrate the viability of our idea by formalizing it in Prolog, and implementing it in LLVM. As a proof of concept, we have used our state machines to implement context-sensitive constant propagation in LLVM. The binaries produced by traditional full cloning are 2.63 times larger than the binaries that we generate with our state machines. When applied on Mozilla Firefox, our optimization increases binary size from 7.2MB to 9.2MB. Full cloning, in contrast, yields a binary of 34MB. |
|---|---|
| AbstractList | Academia has spent much effort into making context-sensitive analyses practical, with great profit. However, the implementation of context-sensitive optimizations , in contrast to analyses, is still not practical, due to code-size explosion. This growth happens because current technology requires the cloning of full paths in the Calling Context Tree. In this paper, we present a solution to this problem. We combine finite state machines and dynamic dispatching to allow fully context-sensitive specialization while cloning only functions that are effectively optimized. This technique makes it possible to apply very liberal optimizations, such as context-sensitive constant propagation, in large programs—something that could not have been easily done before. We demonstrate the viability of our idea by formalizing it in Prolog, and implementing it in LLVM. As a proof of concept, we have used our state machines to implement context-sensitive constant propagation in LLVM. The binaries produced by traditional full cloning are 2.63 times larger than the binaries that we generate with our state machines. When applied on Mozilla Firefox, our optimization increases binary size from 7.2MB to 9.2MB. Full cloning, in contrast, yields a binary of 34MB. |
| ArticleNumber | 167 |
| Author | Pereira, Fernando Magno Quintão Poesia, Gabriel |
| Author_xml | – sequence: 1 givenname: Gabriel surname: Poesia fullname: Poesia, Gabriel email: gabriel.poesia@dcc.ufmg.br organization: Stanford University, USA – sequence: 2 givenname: Fernando Magno Quintão orcidid: 0000-0002-0375-1657 surname: Pereira fullname: Pereira, Fernando Magno Quintão email: fernando@dcc.ufmg.br organization: Federal University of Minas Gerais, Brazil |
| BookMark | eNptz0FLAzEQBeAgFay1ePe0N0_RZCfp7B6lWhUKXvS8ZLMTjHSTsgli_fVWW0XE0wzMx_DeMRuFGIixUykupFT6ElRZlaAP2LhUqLlUpRz92o_YNKUXIYSsQVVQjxlcb4LpvS06n9Ym2-ciusLGkOkt80Qh-exfqYjr7Hv_brKPIZ2wQ2dWiab7OWFPi5vH-R1fPtzez6-W3JSImWNtEMoWsVUA2klSbaVxJjpJiFIQtB112hLWyghF20jgnJoRGKerCgkmjO_-2iGmNJBrrM9fEfJg_KqRovks3exLb_35H78efG-GzT_ybCeN7X_Q9_ED621fcA |
| CitedBy_id | crossref_primary_10_1145_3428288 |
| Cites_doi | 10.1145/263698.264352 10.1145/514191.514229 10.4230/LIPIcs.ECOOP.2016.22 10.1109/CGO.2013.6495006 10.1145/3237009.3237018 10.1007/11688839_5 10.1145/176454.176526 10.1145/325478.325519 10.1145/3133924 10.1145/3381915 10.1145/3290361 10.1145/1806799.1806875 10.1007/978-3-642-19861-8_2 10.1145/3140587.3062359 10.15514/SYRCOSE-2007-1-2 10.1145/3377555.3377902 10.1145/885638.885645 10.1145/1772954.1772985 10.1145/3185768.3185771 10.1007/BFb0057013 10.1109/TSE.2011.70 10.1145/3133874 10.1145/3428288 10.1145/345099.345137 10.1145/2989225.2989236 10.1016/0096-0551(93)90005-L 10.1016/j.scico.2019.102318 10.1145/207110.207119 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3428235 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 28 |
| ExternalDocumentID | 10_1145_3428235 3428235 |
| GrantInformation_xml | – fundername: Conselho Nacional de Desenvolvimento Científico e Tecnológico grantid: 406377/2018-9 |
| GroupedDBID | AAKMM AAYFX ACM ADPZR AIKLT ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX AEFXT AEJOY AKRVB CITATION |
| ID | FETCH-LOGICAL-a277t-79a732b77b4335f1e4b85760d1e7710e3bded5ce794a04e1933ff46e3af5887e3 |
| ISICitedReferencesCount | 2 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685203900044&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:49:08 EST 2025 Tue Nov 18 21:38:18 EST 2025 Fri Feb 21 01:11:52 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA |
| Keywords | Compiler Context-sensitive optimization Dynamic dispatch |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a277t-79a732b77b4335f1e4b85760d1e7710e3bded5ce794a04e1933ff46e3af5887e3 |
| ORCID | 0000-0002-0375-1657 |
| OpenAccessLink | https://dl.acm.org/doi/10.1145/3428235 |
| PageCount | 28 |
| ParticipantIDs | crossref_citationtrail_10_1145_3428235 crossref_primary_10_1145_3428235 acm_primary_3428235 |
| PublicationCentury | 2000 |
| PublicationDate | 2020-11-13 |
| PublicationDateYYYYMMDD | 2020-11-13 |
| PublicationDate_xml | – month: 11 year: 2020 text: 2020-11-13 day: 13 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2020 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | Anton Korobeynikov. 2007. Improving Switch Lowering for the LLVM Compiler System. In SYRCoSE. RAS, Innopolis, Russia, A.I-A.V. Thomas Reps. 1997. Program Analysis via Graph Reachability. In ILPS. MIT Press, Cambridge, MA, USA, 5-19. Matt Brown and Jens Palsberg. 2017. Jones-optimal Partial Evaluation by Specialization-safe Normalization. Proc. ACM Program. Lang. 2, POPL (Dec. 2017 ), 14 : 1-14 : 28. Gabriel Poesia, Breno Guimarães, Fabrício Ferracioli, and Fernando Magno Quintão Pereira. 2017. Static Placement of Computation on Heterogeneous Devices. Proc. ACM Program. Lang. 1, OOPSLA (Oct. 2017 ), 50 : 1-50 : 28. Michael Hind, Michael Burke, Paul Carini, and Jong-Deok Choi. 1999. Interprocedural Pointer Alias Analysis. ACM Trans. Program. Lang. Syst. 21, 4 ( 1999 ), 848-894. Manu Sridharan and Rastislav Bodík. 2006. Refinement-based Context-sensitive Points-to Analysis for Java. In PLDI. ACM, New York, NY, USA, 387-400. Hongtao Yu, Jingling Xue, Wei Huo, Xiaobing Feng, and Zhaoqing Zhang. 2010. Level by Level: Making Flow-and Context-Sensitive Pointer Analysis Scalable for Millions of Lines of Code. In CGO. ACM, New York, NY, USA, 218-229. https://doi.org/10.1145/1772954.1772985 10.1145/1772954.1772985 Olivier Sallenave and Roland Ducournau. 2012. Lightweight Generics in Embedded Systems Through Static Analysis. In LCTES. ACM, New York, NY, USA, 11-20. Keith D Cooper, Mary W Hall, and Ken Kennedy. 1993. A Methodology for Procedure Cloning. Comput. Lang. 19, 2 ( 1993 ), 105-117. Dibyendu Das. 2003. Function inlining versus function cloning. ACM SIGPLAN Notices 38, 6 ( 2003 ), 23-29. Jipeng Huang and Michael D. Bond. 2013. Eficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management. In OOPSLA. ACM, New York, NY, USA, 53-72. Rei Thiessen and Ondřej Lhoták. 2017. Context Transformations for Pointer Analysis. SIGPLAN Not. 52, 6 ( 2017 ), 263-277. https://doi.org/10.1145/3140587.3062359 10.1145/3140587.3062359 Uday Khedker, Amitabha Sanyal, and Bageshri Karkare. 2009. Data Flow Analysis: Theory and Practice (1st ed.). CRC Press, Inc., Boca Raton, FL, USA. Urs Hölzle, Craig Chambers, and David Ungar. 1991. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In ECOOP. Springer-Verlag, London, UK, UK, 21-38. Johannes Späth, Karim Ali, and Eric Bodden. 2019. Context-, flow-, and field-sensitive data-flow analysis using synchronized Pushdown systems. Proc. ACM Program. Lang. 3, POPL ( 2019 ), 48 : 1-48 : 29. https://doi.org/10.1145/3290361 10.1145/3290361 Iulian Dragos and Martin Odersky. 2009. Compiling Generics Through User-directed Type Specialization. In ICOOOLPS. ACM, New York, NY, USA, 42-47. Manas Thakur and V. Krishna Nandivada. 2020. Mix Your Contexts Well: Opportunities Unleashed by Recent Advances in Scaling Context-Sensitivity. In Compiler Construction. ACM, New York, NY, USA, 27-38. https://doi.org/10.1145/3377555. 3377902 10.1145/3377555.3377902 Nikola Grcevski, Allan Kielstra, Kevin Stoodley, Mark Stoodley, and Vijay Sundaresan. 2004. JavaTM Just-in-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications. In VM. USENIX Association, USA, 12. Shiyi Wei and Barbara G. Ryder. 2015. Adaptive Context-sensitive Analysis for JavaScript. In ECOOP. Springer, London, UK, UK, 712-734. Jefrey Dean, Craig Chambers, and David Grove. 1995a. Selective Specialization for Object-Oriented Languages. In PLDI. ACM, New York, NY, USA, 93-102. https://doi.org/10.1145/207110.207119 10.1145/207110.207119 Andreas Gal, Brendan Eich, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorf, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, and Michael Franz. 2009. Trace-based Just-in-time Type Specialization for Dynamic Languages. In PLDI. ACM, New York, NY, USA, 465-478. Yue Li, Tian Tan, Anders Moller, and Yannis Smaragdakis. 2020. A Principled Approach to Selective Context Sensitivityfor Pointer Analysis. TOPLAS To-Appear, 1 ( 2020 ), 1-40. Hakjoo Oh, Wonchan Lee, Kihong Heo, Hongseok Yang, and Kwangkeun Yi. 2014. Selective Context-sensitivity Guided by Impact Pre-analysis. In PLDI. ACM, New York, NY, USA, 475-484. Lian Li, Cristina Cifuentes, and Nathan Keynes. 2013. Precise and Scalable Context-sensitive Pointer Analysis via Value Flow Graph. In ISMM. ACM, New York, NY, USA, 85-96. Gabriel Poesia. 2017. Dispatch of Context-Sensitive Optimizations. Master's thesis. Federal University of Minas Gerais. Caio Lima, Junio Cezar R. da Silva, Guilherme V. Leobas, Erven Rohou, and Fernando Magno Quintão Pereira. 2020. Guided just-in-time specialization. Sci. Comput. Program. 185, Article 2 ( 2020 ), 39 pages. Haichuan Wang, Peng Wu, and David Padua. 2014. Optimizing R VM: Allocation Removal and Path Length Reduction via Interpreter-level Specialization. In CGO. ACM, New York, NY, USA, 295 : 295-295 : 305. Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu, and Toshio Nakatani. 2011. A Trace-Based Java JIT Compiler Retrofitted from a Method-Based Compiler. In CGO. IEEE Computer Society, USA, 246-256. Manas Thakur and V. Krishna Nandivada. 2019. Compare Less, Defer More: Scaling Value-Contexts Based Whole-Program Heap Analyses. In Compiler Construction. ACM, New York, NY, USA, 135-146. Victor Hugo Sperle Campos, Péricles Rafael Alves, Henrique Nazaré Santos, and Fernando Magno Quintão Pereira. 2016. Restrictification of Function Arguments. In CC. ACM, New York, NY, USA, 163-173. Chris Lattner and Vikram S. Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In CGO. IEEE, Washington DC, 75-88. Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2014. FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps. In PLDI. ACM, New York, NY, USA, 259-269. David Leopoldseder, Lukas Stadler, Thomas Würthinger, Josef Eisl, Doug Simon, and Hanspeter Mössenböck. 2018. Dominance-based Duplication Simulation (DBDS): Code Duplication to Enable Compiler Optimizations. In CGO. ACM, New York, NY, USA, 126-137. Henrique Nazare Santos, Pericles Alves, Igor Costa, and Fernando Magno Quintao Pereira. 2013. Just-in-time Value Specialization. In CGO. IEEE Computer Society, Washington, DC, USA, 1-11. https://doi.org/10.1109/CGO. 2013.6495006 10.1109/CGO.2013.6495006 Dick Grune, Kees van Reeuwijk, Henri E. Baland Ceriel J. H. Jacobs, and Koen Langendoen. 2012. Modern Compiler Design (2nd ed.). Springer, London, UK, UK. Robert P. Wilson and Monica S. Lam. 1995. Eficient Context-sensitive Pointer Analysis for C Programs. In PLDI. ACM, New York, NY, USA, 1-12. Rodrigo Sol, Christophe Guillon, Fernando Magno Quintão Pereira, and Mariza Andrade da Silva Bigonha. 2011. Dynamic Elimination of Overflow Tests in a Trace Compiler. In CC. Springer-Verlag, London, UK, UK, 2-21. https://doi.org/10. 1007/978-3-642-19861-8_2 10.1007/978-3-642-19861-8_2 Yu Feng, Saswat Anand, Isil Dillig, and Alex Aiken. 2014. Apposcopy: Semantics-based Detection of Android Malware Through Static Analysis. In FSE. ACM, New York, NY, USA, 576-587. James Bucek, Klaus-Dieter Lange, and Jóakim v. Kistowski. 2018. SPEC CPU2017: Next-Generation Compute Benchmark. In ICPE. Association for Computing Machinery, New York, NY, USA, 41-42. https://doi.org/10.1145/3185768.3185771 10.1145/3185768.3185771 Jefrey Dean, David Grove, and Craig Chambers. 1995b. Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis. In ECOOP. Springer-Verlag, London, UK, UK, 77-101. John Whaley and Monica S. Lam. 2004. Cloning-based Context-sensitive Pointer Alias Analysis Using Binary Decision Diagrams. In PLDI. ACM, New York, NY, USA, 131-144. Sehun Jeong, Minseok Jeon, Sungdeok Cha, and Hakjoo Oh. 2017. Data-Driven Context-Sensitivity for Points-to Analysis. Proc. ACM Program. Lang. 1, OOPSLA, Article 100 ( 2017 ), 28 pages. https://doi.org/10.1145/3133924 10.1145/3133924 Vlad Vergu and Eelco Visser. 2018. Specializing a Meta-Interpreter: JIT Compilation of Dynsem Specifications on the Graal VM. In ManLang. ACM, New York, NY, USA, 1-14. https://doi.org/10.1145/3237009.3237018 10.1145/3237009.3237018 Péricles Alves, Fabian Gruber, Johannes Doerfert, Alexandros Lamprineas, Tobias Grosser, Fabrice Rastello, and Fernando Magno Quintão Pereira. 2015. Runtime Pointer Disambiguation. In OOPSLA. ACM, New York, NY, USA, 589-606. Lukas Stadler, Adam Welc, Christian Humer, and Mick Jordan. 2016. Optimizing R Language Execution via Aggressive Speculation. In DLS. ACM, New York, NY, USA, 84-95. https://doi.org/10.1145/2989225.2989236 10.1145/2989225.2989236 O. Shivers. 1988. Control Flow Analysis in Scheme. In PLDI. ACM, New York, NY, USA, 164-174. Mary Wolcott Hall. 1991. Managing interprocedural optimization. Ph.D. Dissertation. Rice University, Houston, TX, USA. UMI Order No. GAX91-36029. Michael D. Bond and Kathryn S. McKinley. 2007. Probabilistic Calling Context. In OOPSLA. ACM, New York, NY, USA, 97-112. Ana Milanova, Wei Huang, and Yao Dong. 2014. CFL-reachability and Context-sensitive Integrity Types. In PPPJ. ACM, New York, NY, USA, 99-109. Ana Milanova. 2007. Light Context-sensitive Points-to Analysis for Java. In PASTE. ACM, New York, NY, USA, 25-30. David Grove, Greg DeFouw, Jefrey Dean, and Craig Chambers. 1997. Call Graph Construction in Object-Oriented Languages. In OOPSLA. ACM, New York, NY, USA, 108-124. https://doi.org/10.1145/263698.264352 10.1145/263698.264352 Thomas Ball and James R. Larus. 1996. Eficient Path Profiling. In MICRO. IEEE Computer Society, USA, 46-57. Olivier Fluckiger, Guido Chari, Ming-Ho Yee, Jan Jecmen, Jakob Hain, and Jan Vitek. 2020. Contextual Dispatch for Function Specialization. Proc. ACM Program. Lang. 4, OOPSLA, Article 1 ( 2020 ), 36 pages. Robert Metzger and Sean Stroud. 1993. Interprocedural constant propagation: an empirical study. Tian Kai (e_1_2_2_69_1) 2011 Grune Dick (e_1_2_2_22_1) e_1_2_2_49_1 e_1_2_2_62_1 e_1_2_2_64_1 Might Matthew (e_1_2_2_41_1) 2010 e_1_2_2_8_1 e_1_2_2_68_1 Emami Maryam (e_1_2_2_14_1) 1994 Dean Jefrey (e_1_2_2_12_1) Stucki Nicolas (e_1_2_2_63_1) 2013; 10 Thakur Manas (e_1_2_2_66_1) 2019 Hackett Brian (e_1_2_2_23_1) 2012 Wang Haichuan (e_1_2_2_71_1) 2014; 295 Alves Péricles (e_1_2_2_1_1) 2015 e_1_2_2_38_1 e_1_2_2_59_1 e_1_2_2_11_1 Fähndrich Manuel (e_1_2_2_15_1) 2000 Reps Thomas (e_1_2_2_50_1) Huang Jipeng (e_1_2_2_27_1) 2013 e_1_2_2_51_1 Samadi Mehrzad (e_1_2_2_54_1) 2012 e_1_2_2_32_1 Arzt Steven (e_1_2_2_2_1) 2014 Ball Thomas (e_1_2_2_4_1) 1996 Bond Michael D. (e_1_2_2_5_1) 2010 e_1_2_2_17_1 Khedker Uday (e_1_2_2_31_1) e_1_2_2_55_1 Sridharan Manu (e_1_2_2_61_1) 2006 Milanova Ana (e_1_2_2_43_1) 2014 e_1_2_2_57_1 Sallenave Olivier (e_1_2_2_53_1) 2012 Whaley John (e_1_2_2_73_1) 2004 e_1_2_2_70_1 Lattner Chris (e_1_2_2_34_1) 2007 Poesia Gabriel (e_1_2_2_48_1) Gal Andreas (e_1_2_2_18_1) 2009 e_1_2_2_25_1 Milanova Ana (e_1_2_2_42_1) 2007 Feng Yu (e_1_2_2_16_1) 2014 Inoue Hiroshi (e_1_2_2_28_1) 2011 e_1_2_2_21_1 Hölzle Urs (e_1_2_2_26_1) Li Lian (e_1_2_2_37_1) 2013 e_1_2_2_40_1 Milanova Ana (e_1_2_2_44_1) 2004 e_1_2_2_65_1 e_1_2_2_9_1 e_1_2_2_29_1 e_1_2_2_67_1 Kennedy Ken (e_1_2_2_30_1) 2002 Ausiello Giorgio (e_1_2_2_3_1) 2012 Dragos Iulian (e_1_2_2_13_1) 2009 Wilson Robert P. (e_1_2_2_74_1) 1995 Sperle Campos Victor Hugo (e_1_2_2_60_1) 2016 e_1_2_2_39_1 Oh Hakjoo (e_1_2_2_46_1) 2014 Lhoták Ondřej (e_1_2_2_36_1) e_1_2_2_10_1 Shivers O. (e_1_2_2_56_1) 1988 Zhu Jianwen (e_1_2_2_76_1) 2004 e_1_2_2_52_1 e_1_2_2_75_1 Leopoldseder David (e_1_2_2_35_1) 2018 Petrashko Dmitry (e_1_2_2_47_1) 2016 e_1_2_2_58_1 Grcevski Nikola (e_1_2_2_20_1) Wei Shiyi (e_1_2_2_72_1) 2015 Ghiya Rakesh (e_1_2_2_19_1) 1996 Nielson Flemming (e_1_2_2_45_1) Brown Matt (e_1_2_2_7_1) 2017 Bond Michael D. (e_1_2_2_6_1) 2007 Lattner Chris (e_1_2_2_33_1) 2004 |
| References_xml | – reference: Olivier Sallenave and Roland Ducournau. 2012. Lightweight Generics in Embedded Systems Through Static Analysis. In LCTES. ACM, New York, NY, USA, 11-20. – reference: William N. Sumner, Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. 2012. Precise Calling Context Encoding. IEEE Trans. Software Eng. 38, 5 ( 2012 ), 1160-1177. https://doi.org/10.1109/TSE. 2011.70 10.1109/TSE.2011.70 – reference: Caio Lima, Junio Cezar R. da Silva, Guilherme V. Leobas, Erven Rohou, and Fernando Magno Quintão Pereira. 2020. Guided just-in-time specialization. Sci. Comput. Program. 185, Article 2 ( 2020 ), 39 pages. – reference: Michael D. Bond and Kathryn S. McKinley. 2007. Probabilistic Calling Context. In OOPSLA. ACM, New York, NY, USA, 97-112. – reference: Iulian Dragos and Martin Odersky. 2009. Compiling Generics Through User-directed Type Specialization. In ICOOOLPS. ACM, New York, NY, USA, 42-47. – reference: Chris Lattner and Vikram S. Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In CGO. IEEE, Washington DC, 75-88. – reference: Vlad Vergu and Eelco Visser. 2018. Specializing a Meta-Interpreter: JIT Compilation of Dynsem Specifications on the Graal VM. In ManLang. ACM, New York, NY, USA, 1-14. https://doi.org/10.1145/3237009.3237018 10.1145/3237009.3237018 – reference: Péricles Alves, Fabian Gruber, Johannes Doerfert, Alexandros Lamprineas, Tobias Grosser, Fabrice Rastello, and Fernando Magno Quintão Pereira. 2015. Runtime Pointer Disambiguation. In OOPSLA. ACM, New York, NY, USA, 589-606. – reference: Mary Wolcott Hall. 1991. Managing interprocedural optimization. Ph.D. Dissertation. Rice University, Houston, TX, USA. UMI Order No. GAX91-36029. – reference: Chris Lattner, Andrew Lenharth, and Vikram Adve. 2007. Making Context-sensitive Points-to Analysis with Heap Cloning Practical for the Real World. In PLDI. ACM, New York, NY, USA, 278-289. – reference: David Grove, Greg DeFouw, Jefrey Dean, and Craig Chambers. 1997. Call Graph Construction in Object-Oriented Languages. In OOPSLA. ACM, New York, NY, USA, 108-124. https://doi.org/10.1145/263698.264352 10.1145/263698.264352 – reference: Hongtao Yu, Jingling Xue, Wei Huo, Xiaobing Feng, and Zhaoqing Zhang. 2010. Level by Level: Making Flow-and Context-Sensitive Pointer Analysis Scalable for Millions of Lines of Code. In CGO. ACM, New York, NY, USA, 218-229. https://doi.org/10.1145/1772954.1772985 10.1145/1772954.1772985 – reference: Ondřej Lhoták and Laurie Hendren. 2006. Context-Sensitive Points-to Analysis: Is It Worth It?. In CC. Springer, Berlin, Heidelberg, 47-64. – reference: Lukas Stadler, Adam Welc, Christian Humer, and Mick Jordan. 2016. Optimizing R Language Execution via Aggressive Speculation. In DLS. ACM, New York, NY, USA, 84-95. https://doi.org/10.1145/2989225.2989236 10.1145/2989225.2989236 – reference: Manas Thakur and V. Krishna Nandivada. 2019. Compare Less, Defer More: Scaling Value-Contexts Based Whole-Program Heap Analyses. In Compiler Construction. ACM, New York, NY, USA, 135-146. – reference: Nikola Grcevski, Allan Kielstra, Kevin Stoodley, Mark Stoodley, and Vijay Sundaresan. 2004. JavaTM Just-in-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications. In VM. USENIX Association, USA, 12. – reference: Rei Thiessen and Ondřej Lhoták. 2017. Context Transformations for Pointer Analysis. SIGPLAN Not. 52, 6 ( 2017 ), 263-277. https://doi.org/10.1145/3140587.3062359 10.1145/3140587.3062359 – reference: Olivier Fluckiger, Guido Chari, Ming-Ho Yee, Jan Jecmen, Jakob Hain, and Jan Vitek. 2020. Contextual Dispatch for Function Specialization. Proc. ACM Program. Lang. 4, OOPSLA, Article 1 ( 2020 ), 36 pages. – reference: Thomas Reps. 1997. Program Analysis via Graph Reachability. In ILPS. MIT Press, Cambridge, MA, USA, 5-19. – reference: O. Shivers. 1988. Control Flow Analysis in Scheme. In PLDI. ACM, New York, NY, USA, 164-174. – reference: Victor Hugo Sperle Campos, Péricles Rafael Alves, Henrique Nazaré Santos, and Fernando Magno Quintão Pereira. 2016. Restrictification of Function Arguments. In CC. ACM, New York, NY, USA, 163-173. – reference: Nicolas Stucki and Vlad Ureche. 2013. Bridging Islands of Specialized Code Using Macros and Reified Types. In SCALA. ACM, New York, NY, USA, 10 : 1-10 : 4. – reference: Flemming Nielson, Hanne R. Nielson, and Chris Hankin. 1999. Principles of Program Analysis. Springer-Verlag New York, Inc., Secaucus, NJ, USA. – reference: Henrique Nazare Santos, Pericles Alves, Igor Costa, and Fernando Magno Quintao Pereira. 2013. Just-in-time Value Specialization. In CGO. IEEE Computer Society, Washington, DC, USA, 1-11. https://doi.org/10.1109/CGO. 2013.6495006 10.1109/CGO.2013.6495006 – reference: Johannes Späth, Karim Ali, and Eric Bodden. 2019. Context-, flow-, and field-sensitive data-flow analysis using synchronized Pushdown systems. Proc. ACM Program. Lang. 3, POPL ( 2019 ), 48 : 1-48 : 29. https://doi.org/10.1145/3290361 10.1145/3290361 – reference: Robert P. Wilson and Monica S. Lam. 1995. Eficient Context-sensitive Pointer Analysis for C Programs. In PLDI. ACM, New York, NY, USA, 1-12. – reference: Dick Grune, Kees van Reeuwijk, Henri E. Baland Ceriel J. H. Jacobs, and Koen Langendoen. 2012. Modern Compiler Design (2nd ed.). Springer, London, UK, UK. – reference: Manu Sridharan and Rastislav Bodík. 2006. Refinement-based Context-sensitive Points-to Analysis for Java. In PLDI. ACM, New York, NY, USA, 387-400. – reference: Giorgio Ausiello, Camil Demetrescu, Irene Finocchi, and Donatella Firmani. 2012. k-Calling Context Profiling. In OOPSLA. ACM, New York, NY, USA, 867-878. – reference: Dibyendu Das. 2003. Function inlining versus function cloning. ACM SIGPLAN Notices 38, 6 ( 2003 ), 23-29. – reference: Yue Li, Tian Tan, Anders Moller, and Yannis Smaragdakis. 2020. A Principled Approach to Selective Context Sensitivityfor Pointer Analysis. TOPLAS To-Appear, 1 ( 2020 ), 1-40. – reference: Thomas Ball and James R. Larus. 1996. Eficient Path Profiling. In MICRO. IEEE Computer Society, USA, 46-57. – reference: Dmitry Petrashko, Vlad Ureche, Ondřej Lhoták, and Martin Odersky. 2016. Call Graphs for Languages with Parametric Polymorphism. In OOPSLA. ACM, New York, NY, USA, 394-409. – reference: Yu Feng, Saswat Anand, Isil Dillig, and Alex Aiken. 2014. Apposcopy: Semantics-based Detection of Android Malware Through Static Analysis. In FSE. ACM, New York, NY, USA, 576-587. – reference: Michael D. Bond, Graham Z. Baker, and Samuel Z. Guyer. 2010. Breadcrumbs: Eficient Context Sensitivity for Dynamic Bug Detection Analyses. In PLDI. ACM, New York, NY, USA, 13-24. – reference: Ken Kennedy and John R. Allen. 2002. Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. – reference: Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2014. FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps. In PLDI. ACM, New York, NY, USA, 259-269. – reference: Brian Hackett and Shu-yu Guo. 2012. Fast and Precise Hybrid Type Inference for JavaScript. In PLDI. ACM, New York, NY, USA, 239-250. – reference: Lian Li, Cristina Cifuentes, and Nathan Keynes. 2013. Precise and Scalable Context-sensitive Pointer Analysis via Value Flow Graph. In ISMM. ACM, New York, NY, USA, 85-96. – reference: Jefrey Dean, David Grove, and Craig Chambers. 1995b. Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis. In ECOOP. Springer-Verlag, London, UK, UK, 77-101. – reference: Rakesh Ghiya and Laurie J. Hendren. 1996. Is It a Tree, a DAG, or a Cyclic Graph? A Shape Analysis for Heap-directed Pointers in C. In POPL. ACM, New York, NY, USA, 1-15. – reference: Gabriel Poesia, Breno Guimarães, Fabrício Ferracioli, and Fernando Magno Quintão Pereira. 2017. Static Placement of Computation on Heterogeneous Devices. Proc. ACM Program. Lang. 1, OOPSLA (Oct. 2017 ), 50 : 1-50 : 28. – reference: Silvius Rus, Lawrence Rauchwerger, and Jay Hoeflinger. 2002. Hybrid Analysis: Static & Dynamic Memory Reference Analysis. In ICS. ACM, New York, NY, USA, 274-284. – reference: Ana Milanova, Wei Huang, and Yao Dong. 2014. CFL-reachability and Context-sensitive Integrity Types. In PPPJ. ACM, New York, NY, USA, 99-109. – reference: Ana Milanova, Atanas Rountev, and Barbara G. Ryder. 2004. Precise Call Graphs for C Programs with Function Pointers. Automated Software Engg. 11, 1 ( 2004 ), 7-26. – reference: Matthew Might, Yannis Smaragdakis, and David Van Horn. 2010. Resolving and Exploiting the k-CFA Paradox: Illuminating Functional vs. Object-oriented Program Analysis. In PLDI. ACM, New York, NY, USA, 305-315. – reference: Sehun Jeong, Minseok Jeon, Sungdeok Cha, and Hakjoo Oh. 2017. Data-Driven Context-Sensitivity for Points-to Analysis. Proc. ACM Program. Lang. 1, OOPSLA, Article 100 ( 2017 ), 28 pages. https://doi.org/10.1145/3133924 10.1145/3133924 – reference: Manas Thakur and V. Krishna Nandivada. 2020. Mix Your Contexts Well: Opportunities Unleashed by Recent Advances in Scaling Context-Sensitivity. In Compiler Construction. ACM, New York, NY, USA, 27-38. https://doi.org/10.1145/3377555. 3377902 10.1145/3377555.3377902 – reference: Jefrey Dean, Craig Chambers, and David Grove. 1995a. Selective Specialization for Object-Oriented Languages. In PLDI. ACM, New York, NY, USA, 93-102. https://doi.org/10.1145/207110.207119 10.1145/207110.207119 – reference: Jipeng Huang and Michael D. Bond. 2013. Eficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management. In OOPSLA. ACM, New York, NY, USA, 53-72. – reference: Shiyi Wei and Barbara G. Ryder. 2015. Adaptive Context-sensitive Analysis for JavaScript. In ECOOP. Springer, London, UK, UK, 712-734. – reference: Johannes Späth, Lisa Nguyen Quang Do, Karim Ali, and Eric Bodden. 2016. Boomerang: Demand-Driven Flow-and Context-Sensitive Pointer Analysis for Java. In ECOOP. Springer, London, UK, UK, 22 : 1-22 : 26. https://doi.org/10.4230/ LIPIcs.ECOOP. 2016.22 10.4230/LIPIcs.ECOOP.2016.22 – reference: Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu, and Toshio Nakatani. 2011. A Trace-Based Java JIT Compiler Retrofitted from a Method-Based Compiler. In CGO. IEEE Computer Society, USA, 246-256. – reference: Robert Metzger and Sean Stroud. 1993. Interprocedural constant propagation: an empirical study. ACM Lett. Program. Lang. Syst. 2, 1-4 ( 1993 ), 213-232. – reference: Gabriel Poesia. 2017. Dispatch of Context-Sensitive Optimizations. Master's thesis. Federal University of Minas Gerais. – reference: Rodrigo Sol, Christophe Guillon, Fernando Magno Quintão Pereira, and Mariza Andrade da Silva Bigonha. 2011. Dynamic Elimination of Overflow Tests in a Trace Compiler. In CC. Springer-Verlag, London, UK, UK, 2-21. https://doi.org/10. 1007/978-3-642-19861-8_2 10.1007/978-3-642-19861-8_2 – reference: Keith D Cooper, Mary W Hall, and Ken Kennedy. 1993. A Methodology for Procedure Cloning. Comput. Lang. 19, 2 ( 1993 ), 105-117. – reference: Urs Hölzle, Craig Chambers, and David Ungar. 1991. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In ECOOP. Springer-Verlag, London, UK, UK, 21-38. – reference: Jianwen Zhu and Silvian Calman. 2004. Symbolic Pointer Analysis Revisited. In PLDI. ACM, New York, NY, USA, 145-157. – reference: Mehrzad Samadi, Amir Hormati, Mojtaba Mehrara, Janghaeng Lee, and Scott Mahlke. 2012. Adaptive Input-aware Compilation for Graphics Engines. In PLDI. ACM, New York, NY, USA, 13-22. – reference: Ana Milanova. 2007. Light Context-sensitive Points-to Analysis for Java. In PASTE. ACM, New York, NY, USA, 25-30. – reference: Kai Tian, Eddy Zhang, and Xipeng Shen. 2011. A Step Towards Transparent Integration of Input-consciousness into Dynamic Program Optimizations. In OOPSLA. ACM, New York, NY, USA, 445-462. – reference: Andreas Gal, Brendan Eich, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorf, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, and Michael Franz. 2009. Trace-based Just-in-time Type Specialization for Dynamic Languages. In PLDI. ACM, New York, NY, USA, 465-478. – reference: Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. 1994. Context-sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers. In PLDI. ACM, New York, NY, USA, 242-256. – reference: Matt Brown and Jens Palsberg. 2017. Jones-optimal Partial Evaluation by Specialization-safe Normalization. Proc. ACM Program. Lang. 2, POPL (Dec. 2017 ), 14 : 1-14 : 28. – reference: William N. Sumner, Yunhui Zheng, Dasarath Weeratunge, and Xiangyu Zhang. 2010. Precise Calling Context Encoding. In ICSE. ACM, New York, NY, USA, 525-534. https://doi.org/10.1145/1806799.1806875 10.1145/1806799.1806875 – reference: Uday Khedker, Amitabha Sanyal, and Bageshri Karkare. 2009. Data Flow Analysis: Theory and Practice (1st ed.). CRC Press, Inc., Boca Raton, FL, USA. – reference: Thomas Reps. 2000. Undecidability of Context-sensitive Data-dependence Analysis. TOPLAS 22, 1 (Jan. 2000 ), 162-186. – reference: Hakjoo Oh, Wonchan Lee, Kihong Heo, Hongseok Yang, and Kwangkeun Yi. 2014. Selective Context-sensitivity Guided by Impact Pre-analysis. In PLDI. ACM, New York, NY, USA, 475-484. – reference: David Leopoldseder, Lukas Stadler, Thomas Würthinger, Josef Eisl, Doug Simon, and Hanspeter Mössenböck. 2018. Dominance-based Duplication Simulation (DBDS): Code Duplication to Enable Compiler Optimizations. In CGO. ACM, New York, NY, USA, 126-137. – reference: John Whaley and Monica S. Lam. 2004. Cloning-based Context-sensitive Pointer Alias Analysis Using Binary Decision Diagrams. In PLDI. ACM, New York, NY, USA, 131-144. – reference: James Bucek, Klaus-Dieter Lange, and Jóakim v. Kistowski. 2018. SPEC CPU2017: Next-Generation Compute Benchmark. In ICPE. Association for Computing Machinery, New York, NY, USA, 41-42. https://doi.org/10.1145/3185768.3185771 10.1145/3185768.3185771 – reference: Anton Korobeynikov. 2007. Improving Switch Lowering for the LLVM Compiler System. In SYRCoSE. RAS, Innopolis, Russia, A.I-A.V. – reference: Michael Hind, Michael Burke, Paul Carini, and Jong-Deok Choi. 1999. Interprocedural Pointer Alias Analysis. ACM Trans. Program. Lang. Syst. 21, 4 ( 1999 ), 848-894. – reference: Haichuan Wang, Peng Wu, and David Padua. 2014. Optimizing R VM: Allocation Removal and Path Length Reduction via Interpreter-level Specialization. In CGO. ACM, New York, NY, USA, 295 : 295-295 : 305. – reference: Manuel Fähndrich, Jakob Rehof, and Manuvir Das. 2000. Scalable Context-sensitive Flow Analysis Using Instantiation Constraints. In PLDI. ACM, New York, NY, USA, 253-263. – start-page: 246 year: 2011 ident: e_1_2_2_28_1 article-title: A Trace-Based Java JIT Compiler Retrofitted from a Method-Based Compiler publication-title: CGO. IEEE Computer Society, USA – volume-title: Apposcopy: Semantics-based Detection of Android Malware Through Static Analysis. In FSE year: 2014 ident: e_1_2_2_16_1 – ident: e_1_2_2_21_1 doi: 10.1145/263698.264352 – start-page: 445 year: 2011 ident: e_1_2_2_69_1 article-title: A Step Towards Transparent Integration of Input-consciousness into Dynamic Program Optimizations. In OOPSLA. ACM, New York publication-title: NY, USA – volume-title: Data Flow Analysis: Theory and Practice ident: e_1_2_2_31_1 – start-page: 53 year: 2013 ident: e_1_2_2_27_1 article-title: Eficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management. In OOPSLA. ACM, New York publication-title: NY, USA – ident: e_1_2_2_52_1 doi: 10.1145/514191.514229 – ident: e_1_2_2_59_1 doi: 10.4230/LIPIcs.ECOOP.2016.22 – start-page: 253 year: 2000 ident: e_1_2_2_15_1 article-title: Scalable Context-sensitive Flow Analysis Using Instantiation Constraints. In PLDI. ACM, New York publication-title: NY, USA – start-page: 305 year: 2010 ident: e_1_2_2_41_1 article-title: Resolving and Exploiting the k-CFA Paradox: Illuminating Functional vs. Object-oriented Program Analysis. In PLDI. ACM, New York publication-title: NY, USA – start-page: 42 year: 2009 ident: e_1_2_2_13_1 article-title: Compiling Generics Through User-directed Type Specialization. In ICOOOLPS. ACM, New York publication-title: NY, USA – start-page: 97 year: 2007 ident: e_1_2_2_6_1 article-title: Probabilistic Calling Context. In OOPSLA. ACM, New York publication-title: NY, USA – ident: e_1_2_2_55_1 doi: 10.1109/CGO.2013.6495006 – volume: 295 start-page: 295 year: 2014 ident: e_1_2_2_71_1 article-title: Optimizing R VM: Allocation Removal and Path Length Reduction via Interpreter-level Specialization. In CGO. ACM, New York publication-title: NY, USA – volume-title: Proc. ACM Program. Lang. 2, POPL (Dec. 2017 ), 14 : 1-14 : 28 year: 2017 ident: e_1_2_2_7_1 – ident: e_1_2_2_70_1 doi: 10.1145/3237009.3237018 – start-page: 11 year: 2012 ident: e_1_2_2_53_1 article-title: Lightweight Generics in Embedded Systems Through Static Analysis. In LCTES. ACM, New York publication-title: NY, USA – volume-title: Context-Sensitive Points-to Analysis: Is It Worth It? ident: e_1_2_2_36_1 doi: 10.1007/11688839_5 – ident: e_1_2_2_40_1 doi: 10.1145/176454.176526 – start-page: 25 year: 2007 ident: e_1_2_2_42_1 article-title: Light Context-sensitive Points-to Analysis for Java. In PASTE. ACM, New York publication-title: NY, USA – volume: 10 start-page: 1 year: 2013 ident: e_1_2_2_63_1 article-title: Bridging Islands of Specialized Code Using Macros and Reified Types. In SCALA. ACM, New York publication-title: NY, USA – start-page: 394 year: 2016 ident: e_1_2_2_47_1 article-title: Call Graphs for Languages with Parametric Polymorphism. In OOPSLA. ACM, New York publication-title: NY, USA – ident: e_1_2_2_25_1 doi: 10.1145/325478.325519 – start-page: 1 year: 1995 ident: e_1_2_2_74_1 article-title: Eficient Context-sensitive Pointer Analysis for C Programs. In PLDI. ACM, New York publication-title: NY, USA – ident: e_1_2_2_29_1 doi: 10.1145/3133924 – start-page: 46 year: 1996 ident: e_1_2_2_4_1 article-title: Eficient Path Profiling publication-title: MICRO. IEEE Computer Society, USA – volume-title: Ryder year: 2015 ident: e_1_2_2_72_1 – start-page: 278 year: 2007 ident: e_1_2_2_34_1 article-title: Making Context-sensitive Points-to Analysis with Heap Cloning Practical for the Real World. In PLDI. ACM, New York publication-title: NY, USA – ident: e_1_2_2_38_1 doi: 10.1145/3381915 – start-page: 135 year: 2019 ident: e_1_2_2_66_1 article-title: Compare Less, Defer More: Scaling Value-Contexts Based Whole-Program Heap Analyses. In Compiler Construction. ACM, New York publication-title: NY, USA – start-page: 239 year: 2012 ident: e_1_2_2_23_1 article-title: Fast and Precise Hybrid Type Inference for JavaScript. In PLDI. ACM, New York publication-title: NY, USA – volume-title: Allen year: 2002 ident: e_1_2_2_30_1 – ident: e_1_2_2_58_1 doi: 10.1145/3290361 – ident: e_1_2_2_64_1 doi: 10.1145/1806799.1806875 – ident: e_1_2_2_57_1 doi: 10.1007/978-3-642-19861-8_2 – volume-title: Guyer year: 2010 ident: e_1_2_2_5_1 – ident: e_1_2_2_68_1 doi: 10.1145/3140587.3062359 – start-page: 589 year: 2015 ident: e_1_2_2_1_1 article-title: Runtime Pointer Disambiguation. In OOPSLA. ACM, New York publication-title: NY, USA – start-page: 867 year: 2012 ident: e_1_2_2_3_1 article-title: k-Calling Context Profiling. In OOPSLA. ACM, New York publication-title: NY, USA – volume-title: Dispatch of Context-Sensitive Optimizations. Master's thesis ident: e_1_2_2_48_1 – start-page: 1 year: 1996 ident: e_1_2_2_19_1 article-title: Is It a Tree, a DAG, or a Cyclic Graph? A Shape Analysis for Heap-directed Pointers in C. In POPL. ACM, New York publication-title: NY, USA – ident: e_1_2_2_32_1 doi: 10.15514/SYRCOSE-2007-1-2 – ident: e_1_2_2_67_1 doi: 10.1145/3377555.3377902 – volume-title: Program Analysis via Graph Reachability ident: e_1_2_2_50_1 – ident: e_1_2_2_10_1 doi: 10.1145/885638.885645 – ident: e_1_2_2_75_1 doi: 10.1145/1772954.1772985 – ident: e_1_2_2_8_1 doi: 10.1145/3185768.3185771 – volume-title: Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches ident: e_1_2_2_26_1 doi: 10.1007/BFb0057013 – start-page: 164 year: 1988 ident: e_1_2_2_56_1 article-title: Control Flow Analysis in Scheme. In PLDI. ACM, New York publication-title: NY, USA – volume-title: Adve year: 2004 ident: e_1_2_2_33_1 – ident: e_1_2_2_65_1 doi: 10.1109/TSE.2011.70 – ident: e_1_2_2_49_1 doi: 10.1145/3133874 – volume-title: Principles of Program Analysis ident: e_1_2_2_45_1 – ident: e_1_2_2_17_1 doi: 10.1145/3428288 – start-page: 131 year: 2004 ident: e_1_2_2_73_1 article-title: Cloning-based Context-sensitive Pointer Alias Analysis Using Binary Decision Diagrams. In PLDI. ACM, New York publication-title: NY, USA – ident: e_1_2_2_51_1 doi: 10.1145/345099.345137 – start-page: 465 year: 2009 ident: e_1_2_2_18_1 article-title: Trace-based Just-in-time Type Specialization for Dynamic Languages. In PLDI. ACM, New York publication-title: NY, USA – start-page: 99 year: 2014 ident: e_1_2_2_43_1 article-title: CFL-reachability and Context-sensitive Integrity Types. In PPPJ. ACM, New York publication-title: NY, USA – volume-title: Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis ident: e_1_2_2_12_1 – start-page: 85 year: 2013 ident: e_1_2_2_37_1 article-title: Precise and Scalable Context-sensitive Pointer Analysis via Value Flow Graph. In ISMM. ACM, New York publication-title: NY, USA – start-page: 475 year: 2014 ident: e_1_2_2_46_1 article-title: Selective Context-sensitivity Guided by Impact Pre-analysis. In PLDI. ACM, New York publication-title: NY, USA – start-page: 126 year: 2018 ident: e_1_2_2_35_1 article-title: Dominance-based Duplication Simulation (DBDS): Code Duplication to Enable Compiler Optimizations. In CGO. ACM, New York publication-title: NY, USA – volume-title: Modern Compiler Design ident: e_1_2_2_22_1 – start-page: 145 year: 2004 ident: e_1_2_2_76_1 article-title: Symbolic Pointer Analysis Revisited. In PLDI. ACM, New York publication-title: NY, USA – ident: e_1_2_2_62_1 doi: 10.1145/2989225.2989236 – start-page: 163 year: 2016 ident: e_1_2_2_60_1 article-title: Restrictification of Function Arguments. In CC. ACM, New York publication-title: NY, USA – start-page: 242 year: 1994 ident: e_1_2_2_14_1 article-title: Context-sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers. In PLDI. ACM, New York publication-title: NY, USA – ident: e_1_2_2_9_1 doi: 10.1016/0096-0551(93)90005-L – start-page: 13 year: 2012 ident: e_1_2_2_54_1 article-title: Adaptive Input-aware Compilation for Graphics Engines. In PLDI. ACM, New York publication-title: NY, USA – ident: e_1_2_2_39_1 doi: 10.1016/j.scico.2019.102318 – volume-title: Damien Octeau, and Patrick McDaniel. year: 2014 ident: e_1_2_2_2_1 – volume-title: JavaTM Just-in-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications ident: e_1_2_2_20_1 – ident: e_1_2_2_11_1 doi: 10.1145/207110.207119 – volume-title: Ryder year: 2004 ident: e_1_2_2_44_1 – start-page: 387 year: 2006 ident: e_1_2_2_61_1 article-title: Refinement-based Context-sensitive Points-to Analysis for Java. In PLDI. ACM, New York publication-title: NY, USA |
| SSID | ssj0001934839 |
| Score | 2.174608 |
| Snippet | Academia has spent much effort into making context-sensitive analyses practical, with great profit. However, the implementation of context-sensitive... |
| SourceID | crossref acm |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 1 |
| SubjectTerms | Compilers Formal languages and automata theory General programming languages Language features Operational semantics Procedures, functions and subroutines Program semantics Regular languages Semantics and reasoning Software and its engineering Software notations and tools Theory of computation |
| SubjectTermsDisplay | Software and its engineering -- Software notations and tools -- Compilers Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Procedures, functions and subroutines Theory of computation -- Formal languages and automata theory -- Regular languages Theory of computation -- Semantics and reasoning -- Program semantics -- Operational semantics |
| Title | Dynamic dispatch of context-sensitive optimizations |
| URI | https://dl.acm.org/doi/10.1145/3428235 |
| Volume | 4 |
| WOSCitedRecordID | wos000685203900044&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3NT9swFLc2xmEXYLCJb-Uw7VJZNLFdJ8cKNjhQ6ARI3Co7edEq0aTqB-qJv53nj7QecBiHXaLKtRwlP-fn5-ffe4-Q74WyEY6KAoOScs4YzVKtKLYj94GETm5T5l_Kq6v0_j7r-7KKU1tOQFZVulhk4_8KNbYh2CZ09h1wLwfFBvyNoOMVYcfrPwF_5mrMm6OXMfLsHyccr4zCg06NXN2KhWqkilETgxlaqP3limZFHt3TnjlP8DKukXEsNC7OpTXer2HqNLfnSuPW-2HFtxMY2kJGLe-vrls9I-1r_Z4Pq5k9pGd16HjAXaYRv7FgqngxuyWrhEtBY-6inRtm5cEEur7u31x2A6qMgzXXxYe_ZnNuEl8w3CElLqfJi9TY_p-P5FMiRWYEfb2nwMOWMY7mn4uUNmOd-P7GEMlHgSESWBS3W2TDbwWiroPwC_kA1TbZbMpsRJ51dwjziEYNolFdRq8Qjf5C9Cu5-_Xz9vSC-loXVCVSzqjMlGSJllLj5yLKGLhOcSvYLmKQaAQC0wUUIgekT9XmgM_GypJ3gKlS4DoB7BtZq-oKdkmkCyUgTtu6LARXaMKJQjLF847E0TMd75FtfPzB2GUzGfiXskd-NK9jkPv08KZKycPAha6LVcdo2bEZ40WX_TfvcEA-r6bRIVmbTeZwRNbzx9lwOjm22D0DtghRmg |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Dynamic+dispatch+of+context-sensitive+optimizations&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Poesia%2C+Gabriel&rft.au=Pereira%2C+Fernando+Magno+Quint%C3%A3o&rft.date=2020-11-13&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=4&rft.issue=OOPSLA&rft.spage=1&rft.epage=28&rft_id=info:doi/10.1145%2F3428235&rft.externalDocID=3428235 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |