{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:33:33Z","timestamp":1750307613811,"version":"3.41.0"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2009,3,1]],"date-time":"2009-03-01T00:00:00Z","timestamp":1235865600000},"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":[[2009,3]]},"abstract":"<jats:p>\n            Unless the speed gap between CPU and memory disappears, efficient memory usage remains a decisive factor for performance. To optimize data usage of programs in the presence of the memory hierarchy, we are particularly interested in two compiler techniques:\n            <jats:italic>pool allocation<\/jats:italic>\n            and\n            <jats:italic>field layout restructuring<\/jats:italic>\n            . Since foreseeing runtime behaviors of programs at compile time is difficult, most of the previous work relied on profiling. On the contrary, our goal is to develop a fully automatic compiler that statically transforms input codes to use memory efficiently. Noticing that\n            <jats:italic>regular expressions<\/jats:italic>\n            , which denote repetition explicitly, are sufficient for memory access patterns, we describe how to extract memory access patterns as regular expressions in detail. Based on static patterns presented in regular expressions, we apply pool allocation to repeatedly accessed structures and exploit field layout restructuring according to field affinity relations of chosen structures. To make a scalable framework, we devise and apply new abstraction techniques, which build and interpret access patterns for the whole programs in a bottom-up fashion. We implement our analyses and transformations with the CIL compiler. To verify the effect and scalability of our scheme, we examine 17 benchmarks including 2 SPECINT 2000 benchmarks whose source lines of code are larger than 10,000. Our experiments demonstrate that the static layout transformations for dynamic memory can reduce L1D cache misses by 16% and execution times by 14% on average.\n          <\/jats:p>","DOI":"10.1145\/1498690.1498693","type":"journal-article","created":{"date-parts":[[2009,4,6]],"date-time":"2009-04-06T16:34:22Z","timestamp":1239035662000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Abstracting access patterns of dynamic memory using regular expressions"],"prefix":"10.1145","volume":"5","author":[{"given":"Jinseong","family":"Jeon","sequence":"first","affiliation":[{"name":"Agency for Defense Development, Korea"}]},{"given":"Keoncheol","family":"Shin","sequence":"additional","affiliation":[{"name":"Korea Advanced Institute of Science and Technology (KAIST)"}]},{"given":"Hwansoo","family":"Han","sequence":"additional","affiliation":[{"name":"Sungkyunkwan University, Gyeonggi-do, Republic of Korea"}]}],"member":"320","published-online":{"date-parts":[[2009,3,23]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/1177220"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/773473.178446"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0039704"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1029873.1029884"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/301618.301635"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349309"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/330249.330254"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1028996"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/503272.503279"},{"key":"e_1_2_1_10_1","doi-asserted-by":"crossref","unstructured":"Hopcroft J. E. Motwani R. and Ullman J. D. 2001. Introduction to Automata Theory Languages and Computation 2nd Ed. Addison-Wesley New York.   Hopcroft J. E. Motwani R. and Ullman J. D. 2001. Introduction to Automata Theory Languages and Computation 2nd Ed. Addison-Wesley New York.","DOI":"10.1145\/568438.568455"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1028983"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2006.29"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065027"},{"key":"e_1_2_1_14_1","unstructured":"McGill benchmark suite. http:\/\/llvm.org\/.  McGill benchmark suite. http:\/\/llvm.org\/."},{"volume-title":"Proceedings of the International Conference on Compiler Construction (CC'02)","author":"Necula G. C.","key":"e_1_2_1_15_1","unstructured":"Necula , G. C. , McPeak , S. , Rahul , S. P. , and Weimer , W . 2002. CIL: Intermediate language and tools for analysis and transformation of c programs . In Proceedings of the International Conference on Compiler Construction (CC'02) . ACM, New York, 213--228. Necula, G. C., McPeak, S., Rahul, S. P., and Weimer, W. 2002. CIL: Intermediate language and tools for analysis and transformation of c programs. In Proceedings of the International Conference on Compiler Construction (CC'02). ACM, New York, 213--228."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/643470.643474"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/201059.201065"},{"key":"e_1_2_1_18_1","unstructured":"Rundberg P. and Warg F. Freebench v1.0 benchmark suite. http:\/\/www.freebench.org\/.  Rundberg P. and Warg F. Freebench v1.0 benchmark suite. http:\/\/www.freebench.org\/."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/291069.291012"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088149.1088167"},{"volume-title":"Proceedings of the Conference on Design, Automation and Test in Europe (DATE'06)","author":"Shin K.","key":"e_1_2_1_21_1","unstructured":"Shin , K. , Kim , J. , Kim , S. , and Han , H . 2006. Restructuring field layouts for embedded memory systems . In Proceedings of the Conference on Design, Automation and Test in Europe (DATE'06) . IEEE, Los Alamitos, CA, 937--942. Shin, K., Kim, J., Kim, S., and Han, H. 2006. Restructuring field layouts for embedded memory systems. In Proceedings of the Conference on Design, Automation and Test in Europe (DATE'06). IEEE, Los Alamitos, CA, 937--942."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/322261.322273"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/322261.322272"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/291891.291894"},{"volume-title":"IEEE International Conference on Parallel Architectures and Compilation Techniques (PACT'98)","author":"Truong D. N.","key":"e_1_2_1_25_1","unstructured":"Truong , D. N. , Bodin , F. , and Seznec , A . 1998. Improving cache behavior of dynamically allocated data structures . In IEEE International Conference on Parallel Architectures and Compilation Techniques (PACT'98) . IEEE, Los Alamitos, CA, 322--331. Truong, D. N., Bodin, F., and Seznec, A. 1998. Improving cache behavior of dynamically allocated data structures. In IEEE International Conference on Parallel Architectures and Compilation Techniques (PACT'98). IEEE, Los Alamitos, CA, 322--331."},{"key":"e_1_2_1_26_1","unstructured":"Valgrind. http:\/\/valgrind.org.  Valgrind. http:\/\/valgrind.org."},{"key":"e_1_2_1_27_1","unstructured":"Wheeler D. A. SLOCcount. http:\/\/www.dwheeler.com\/sloccount\/.  Wheeler D. A. SLOCcount. http:\/\/www.dwheeler.com\/sloccount\/."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/996841.996872"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1498690.1498693","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1498690.1498693","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T12:45:43Z","timestamp":1750250743000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1498690.1498693"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,3]]},"references-count":28,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2009,3]]}},"alternative-id":["10.1145\/1498690.1498693"],"URL":"https:\/\/doi.org\/10.1145\/1498690.1498693","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2009,3]]},"assertion":[{"value":"2007-01-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2008-07-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2009-03-23","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}