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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 4; číslo OOPSLA; s. 1 - 28
Hlavní autoři: Poesia, Gabriel, Pereira, Fernando Magno Quintão
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