{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,21]],"date-time":"2025-09-21T18:00:06Z","timestamp":1758477606579,"version":"3.41.0"},"reference-count":55,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2019,12,26]],"date-time":"2019-12-26T00:00:00Z","timestamp":1577318400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100007601","name":"Horizon 2020","doi-asserted-by":"publisher","award":["676240"],"award-info":[{"award-number":["676240"]}],"id":[{"id":"10.13039\/501100007601","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2019,12,31]]},"abstract":"<jats:p>\n            Increasingly complex hardware makes the design of effective compilers difficult. To reduce this problem, we introduce\n            <jats:italic>Declarative Loop Tactics<\/jats:italic>\n            , which is a novel framework of composable program transformations based on an internal tree-like program representation of a polyhedral compiler. The framework is based on a declarative C++ API built around easy-to-program matchers and builders, which provide the foundation to develop loop optimization strategies. Using our matchers and builders, we express computational patterns and core building blocks, such as loop tiling, fusion, and data-layout transformations, and compose them into algorithm-specific optimizations. Declarative Loop Tactics (Loop Tactics for short) can be applied to many domains. For two of them, stencils and linear algebra, we show how developers can express sophisticated domain-specific optimizations as a set of composable transformations or calls to optimized libraries. By allowing developers to add highly customized optimizations for a given computational pattern, we expect our approach to reduce the need for DSLs and to extend the range of optimizations that can be performed by a current general-purpose compiler.\n          <\/jats:p>","DOI":"10.1145\/3372266","type":"journal-article","created":{"date-parts":[[2019,12,26]],"date-time":"2019-12-26T21:05:46Z","timestamp":1577394346000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":14,"title":["Declarative Loop Tactics for Domain-specific Optimization"],"prefix":"10.1145","volume":"16","author":[{"given":"Lorenzo","family":"Chelini","sequence":"first","affiliation":[{"name":"Eindhoven University of Technology and IBM Research Zurich"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1978-0222","authenticated-orcid":false,"given":"Oleksandr","family":"Zinenko","sequence":"additional","affiliation":[{"name":"Inria"}]},{"given":"Tobias","family":"Grosser","sequence":"additional","affiliation":[{"name":"ETH Zurich"}]},{"given":"Henk","family":"Corporaal","sequence":"additional","affiliation":[{"name":"Eindhoven University of Technology"}]}],"member":"320","published-online":{"date-parts":[[2019,12,26]]},"reference":[{"volume-title":"Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201916)","year":"2016","author":"Abadi Mart\u00edn","key":"e_1_2_1_1_1"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786763.2694392"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1391956.1391959"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854048"},{"volume-title":"Polaris: Improving the effectiveness of parallelizing compilers. In Languages and Compilers for Parallel Computing","year":"1995","author":"Blume William","key":"e_1_2_1_5_1"},{"volume-title":"Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques (PACT\u201910)","author":"Bondhugula U.","key":"e_1_2_1_6_1"},{"volume-title":"Proceedings of the ACM SIGPLAN Symposium on Programming Language Design and Implementation (PLDI\u201908)","author":"Bondhugula Uday","key":"e_1_2_1_7_1"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1379022.1375595"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2007.11.003"},{"volume-title":"Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI\u201918)","year":"2018","author":"Chen Tianqi","key":"e_1_2_1_11_1"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/WPC.1996.501131"},{"volume-title":"David Padua, and Keshav Pingali.","year":"2006","author":"Donadio Sebastien","key":"e_1_2_1_13_1"},{"key":"e_1_2_1_14_1","doi-asserted-by":"crossref","unstructured":"Paul Feautrier and Christian Lengauer. 2011. Polyhedron Model. Springer Boston MA 1581--1592. DOI:https:\/\/doi.org\/10.1007\/978-0-387-09766-4_502  Paul Feautrier and Christian Lengauer. 2011. Polyhedron Model. Springer Boston MA 1581--1592. DOI:https:\/\/doi.org\/10.1007\/978-0-387-09766-4_502","DOI":"10.1007\/978-0-387-09766-4_502"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3235029"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/200994.201003"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-006-0012-3"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2581122.2544160"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0129626412500107"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2751205.2751248"},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the 1st International Workshop on Polyhedral Compilation Techniques (IMPACT\u201911)","volume":"2011","author":"Grosser Tobias","year":"2011"},{"volume-title":"Proceedings of the 20th International Conference on Compiler Construction: Part of the Joint European Conferences on Theory and Practice of Software (CC\u201911\/ETAPS\u201911)","year":"1987","author":"Henretty Tom","key":"e_1_2_1_22_1"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1155\/1996\/406379"},{"volume-title":"Proceedings of the 7th International Workshop on Program Comprehension. 200--207","year":"1999","author":"Kessler C. W.","key":"e_1_2_1_25_1"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2400682.2400690"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314653"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.184761"},{"volume-title":"Evolving OpenMP for Evolving Architectures, Bronis R","author":"Kruse Michael","key":"e_1_2_1_29_1"},{"volume-title":"Languages and Compilers for Parallel Computing","author":"Lee Sang-Ik","key":"e_1_2_1_30_1"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2925987"},{"volume-title":"Proceedings of the IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW\u201918)","year":"2018","author":"Markidis S.","key":"e_1_2_1_32_1"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/1493.001.0001"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2786763.2694364"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/177492.177494"},{"volume-title":"Proceedings of the GCC Developers Summit. Citeseer","year":"2006","author":"Pop Sebastian","key":"e_1_2_1_36_1"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/224538.224655"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/183432.183525"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462176"},{"key":"e_1_2_1_41_1","article-title":"Extensible recognition of algorithmic patterns in DSP programs for automatic parallelization","volume":"41","author":"Sarvestani Amin Shafiee","year":"2013","journal-title":"Int. J. Parallel Prog."},{"volume-title":"Numerical Solution of Partial Differential Equations: Finite Difference Methods","author":"Smith Gordon D.","key":"e_1_2_1_42_1"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/237578.237581"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2584665"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517208.2517220"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_3"},{"volume-title":"Hagness","year":"2005","author":"Taflove Allen","key":"e_1_2_1_47_1"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2019.8661203"},{"volume-title":"Tensor comprehensions: Framework-agnostic high-performance machine learning abstractions. CoRR abs\/1802.04730","year":"2018","author":"Vasilache Nicolas","key":"e_1_2_1_49_1"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.5555\/1888390.1888455"},{"volume-title":"Proceedings of the 1st International Workshop on Polyhedral Compilation Techniques (IMPACT\u201911)","year":"2011","author":"Verdoolaege Sven","key":"e_1_2_1_51_1"},{"volume-title":"Proceedings of the 2nd International Workshop on Polyhedral Compilation Techniques (IMPACT\u201912)","year":"2012","author":"Verdoolaege Sven","key":"e_1_2_1_52_1"},{"volume-title":"Proceedings of the 4th Workshop on Polyhedral Compilation Techniques (IMPACT\u201914","year":"2014","author":"Verdoolaege Sven","key":"e_1_2_1_53_1"},{"key":"e_1_2_1_54_1","unstructured":"Sven Verdoolaege and Alexandre Isoard. 2017. Consecutivity in the isl polyhedral scheduler. (2017).  Sven Verdoolaege and Alexandre Isoard. 2017. Consecutivity in the isl polyhedral scheduler. (2017)."},{"key":"e_1_2_1_55_1","unstructured":"Sven Verdoolaege and Gerda Janssens. 2017. Scheduling for PPCG. Report CW 706. Department of Computer Science KU Leuven Leuven Belgium. DOI:https:\/\/doi.org\/10.13140\/RG.2.2.28998.68169  Sven Verdoolaege and Gerda Janssens. 2017. Scheduling for PPCG. Report CW 706. Department of Computer Science KU Leuven Leuven Belgium. DOI:https:\/\/doi.org\/10.13140\/RG.2.2.28998.68169"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.1089"},{"volume-title":"Proceedings of the International Workshop on Languages and Compilers for Parallel Computing. Springer, 17--31","year":"2012","author":"Yuki Tomofumi","key":"e_1_2_1_57_1"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178372.3179507"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3372266","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3372266","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:32:10Z","timestamp":1750195930000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3372266"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,12,26]]},"references-count":55,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2019,12,31]]}},"alternative-id":["10.1145\/3372266"],"URL":"https:\/\/doi.org\/10.1145\/3372266","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2019,12,26]]},"assertion":[{"value":"2019-08-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-12-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}