{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,7]],"date-time":"2025-11-07T09:04:10Z","timestamp":1762506250719,"version":"3.41.0"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2013,12,1]],"date-time":"2013-12-01T00:00:00Z","timestamp":1385856000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2013,12]]},"abstract":"<jats:p>The growing gap between the advanced capabilities of static compilers as reflected in benchmarking results and the actual performance that users experience in real-life scenarios makes client-side dynamic optimization technologies imperative to the domain of static languages. Dynamic optimization of software distributed in the form of a platform-agnostic Intermediate-Representation (IR) has been very successful in the domain of managed languages, greatly improving upon interpreted code, especially when online profiling is used. However, can such feedback-directed IR-based dynamic code generation be viable in the domain of statically compiled, rather than interpreted, languages? We show that fat binaries, which combine the IR together with the statically compiled executable, can provide a practical solution for software vendors, allowing their software to be dynamically optimized without the limitation of binary-level approaches, which lack the high-level IR of the program, and without the warm-up costs associated with the IR-only software distribution approach. We describe and evaluate the fat-binary-based runtime compilation approach using SPECint2006, demonstrating that the overheads it incurs are low enough to be successfully surmounted by dynamic optimization. Building on Java JIT technologies, our results already improve upon common real-world usage scenarios, including very small workloads.<\/jats:p>","DOI":"10.1145\/2541228.2555315","type":"journal-article","created":{"date-parts":[[2014,1,14]],"date-time":"2014-01-14T13:39:57Z","timestamp":1389706797000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["JIT technology with C\/C++"],"prefix":"10.1145","volume":"10","author":[{"given":"Dorit","family":"Nuzman","sequence":"first","affiliation":[{"name":"IBM Research"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Revital","family":"Eres","sequence":"additional","affiliation":[{"name":"IBM Research"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sergei","family":"Dyshel","sequence":"additional","affiliation":[{"name":"IBM Research"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marcel","family":"Zalmanovici","sequence":"additional","affiliation":[{"name":"IBM Research"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jose","family":"Castanos","sequence":"additional","affiliation":[{"name":"IBM Research"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2013,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1988042.1988048"},{"volume-title":"Proceedings of the 14th International Workshop on Languages and Compilers for Parallel Computing (LCPC\u201901)","author":"Arnold M.","key":"e_1_2_1_2_1","unstructured":"Arnold , M. , Hind , M. , and Ryder , B. G . 2001. An empirical study of selective optimization . In Proceedings of the 14th International Workshop on Languages and Compilers for Parallel Computing (LCPC\u201901) . Springer-Verlag, London, 49--67. Arnold, M., Hind, M., and Ryder, B. G. 2001. An empirical study of selective optimization. In Proceedings of the 14th International Workshop on Languages and Compilers for Parallel Computing (LCPC\u201901). Springer-Verlag, London, 49--67."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/378795.378832"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349303"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993316.1993508"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/RTAS.2011.29"},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201903)","author":"Bruening D.","key":"e_1_2_1_7_1","unstructured":"Bruening , D. , Garnett , T. , and Amarasinghe , S . 2003. An infrastructure for adaptive dynamic optimization . In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201903) . IEEE Computer Society, Washington, DC, 265--275. Bruening, D., Garnett, T., and Amarasinghe, S. 2003. An infrastructure for adaptive dynamic optimization. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201903). IEEE Computer Society, Washington, DC, 265--275."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1374752.1374754"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2150976.2150983"},{"volume-title":"Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS\u201903)","author":"Childers B.","key":"e_1_2_1_10_1","unstructured":"Childers , B. , Davidson , J. W. , and Soffa , M. L . 2003. Continuous compilation: A new approach to aggressive and adaptive code transformation . In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS\u201903) . IEEE Computer Society, Washington, DC, 205.1. Childers, B., Davidson, J. W., and Soffa, M. L. 2003. Continuous compilation: A new approach to aggressive and adaptive code transformation. In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS\u201903). IEEE Computer Society, Washington, DC, 205.1."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237767"},{"volume-title":"Proceedings of the GCC Developers Summit. 111--116","author":"Costa R.","key":"e_1_2_1_12_1","unstructured":"Costa , R. , Ornstein , A. C. , and Rohou , E . 2007. CLI back-end in GCC . In Proceedings of the GCC Developers Summit. 111--116 . Costa, R., Ornstein, A. C., and Rohou, E. 2007. CLI back-end in GCC. In Proceedings of the GCC Developers Summit. 111--116."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/258915.258923"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/264107.264126"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/231379.231411"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2013.6494981"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1735997.1736006"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/301618.301683"},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201904)","author":"Hazelwood K.","key":"e_1_2_1_20_1","unstructured":"Hazelwood , K. and Smith , J. E . 2004. Exploring code cache eviction granularities in dynamic optimization systems . In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201904) . IEEE Computer Society, Washington, DC, 89. Hazelwood, K. and Smith, J. E. 2004. Exploring code cache eviction granularities in dynamic optimization systems. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201904). IEEE Computer Society, Washington, DC, 89."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/778559.778562"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1254810.1254824"},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201904)","author":"Lattner C.","key":"e_1_2_1_23_1","unstructured":"Lattner , C. and Adve , V. S . 2004. LLVM: A compilation framework for lifelong program analysis and transformation . In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201904) . IEEE Computer Society, 75--88. Lattner, C. and Adve, V. S. 2004. LLVM: A compilation framework for lifelong program analysis and transformation. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201904). IEEE Computer Society, 75--88."},{"key":"e_1_2_1_24_1","first-page":"2004","article-title":"Design and implementation of a lightweight dynamic optimization system","volume":"6","author":"Lu J.","year":"2004","unstructured":"Lu , J. , Chen , H. , Yew , P.-C. , and chung Hsu , W. 2004 . Design and implementation of a lightweight dynamic optimization system . Journal of Instruction-Level Parallelism 6 , 2004 . Lu, J., Chen, H., Yew, P.-C., and chung Hsu, W. 2004. Design and implementation of a lightweight dynamic optimization system. Journal of Instruction-Level Parallelism 6, 2004.","journal-title":"Journal of Instruction-Level Parallelism"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2013.6494982"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/301618.301681"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/360128.360158"},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201911)","author":"Nuzman D.","key":"e_1_2_1_28_1","unstructured":"Nuzman , D. , Dyshel , S. , Rohou , E. , Rosen , I. , Williams , K. , Yuste , D. , Cohen , A. , and Zaks , A . 2011. Vapor SIMD: Auto-vectorize once, run everywhere . Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201911) . IEEE Computer Society, Washington, DC, 151--160. Nuzman, D., Dyshel, S., Rohou, E., Rosen, I., Williams, K., Yuste, D., Cohen, A., and Zaks, A. 2011. Vapor SIMD: Auto-vectorize once, run everywhere. Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (CGO\u201911). IEEE Computer Society, Washington, DC, 151--160."},{"volume-title":"Proceedings of the 2009 Conference on Design, Automation & Test in Europe (DATE&rsquo;\u201909)","author":"Ozturk O.","key":"e_1_2_1_29_1","unstructured":"Ozturk , O. and Kandemir , M . 2009. Using dynamic compilation for continuing execution under reduced memory availability . In Proceedings of the 2009 Conference on Design, Automation & Test in Europe (DATE&rsquo;\u201909) . European Design and Automation Association, Leuven, Belgium, 1373--1378. Ozturk, O. and Kandemir, M. 2009. Using dynamic compilation for continuing execution under reduced memory availability. In Proceedings of the 2009 Conference on Design, Automation & Test in Europe (DATE&rsquo;\u201909). European Design and Automation Association, Leuven, Belgium, 1373--1378."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the Virtual Machine Research and Technology Symposium (VM\u201904)","author":"Piumarta I.","year":"2004","unstructured":"Piumarta , I. 2004 . The virtual processor: Fast, architecture-neutral dynamic code generation . In Proceedings of the Virtual Machine Research and Technology Symposium (VM\u201904) . USENIX Association, Berkeley, CA, 8--8. Piumarta, I. 2004. The virtual processor: Fast, architecture-neutral dynamic code generation. In Proceedings of the Virtual Machine Research and Technology Symposium (VM\u201904). USENIX Association, Berkeley, CA, 8--8."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/316686.316697"},{"volume-title":"Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT\u201901)","author":"Sherwood T.","key":"e_1_2_1_33_1","unstructured":"Sherwood , T. , Perelman , E. , and Calder , B . 2001. Basic block distribution analysis to find periodic behavior and simulation points in applications . In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT\u201901) . 3--14. Sherwood, T., Perelman, E., and Calder, B. 2001. Basic block distribution analysis to find periodic behavior and simulation points in applications. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques (PACT\u201901). 3--14."},{"key":"e_1_2_1_34_1","unstructured":"Stoodley K. 2006. Productivity and Performance: Future Directions in Compilers. Retrieved from http:\/\/www.cgo.org\/cgo2006\/html\/program.html.  Stoodley K. 2006. Productivity and Performance: Future Directions in Compilers. Retrieved from http:\/\/www.cgo.org\/cgo2006\/html\/program.html."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2006.16"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065944.1065981"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048103"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/379539.379583"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_27"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1538917.1538918"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2009.10"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2541228.2555315","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2541228.2555315","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:35:01Z","timestamp":1750232101000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2541228.2555315"}},"subtitle":["Feedback-directed dynamic recompilation for statically compiled languages"],"short-title":[],"issued":{"date-parts":[[2013,12]]},"references-count":39,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013,12]]}},"alternative-id":["10.1145\/2541228.2555315"],"URL":"https:\/\/doi.org\/10.1145\/2541228.2555315","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2013,12]]},"assertion":[{"value":"2013-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-12-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}