{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,2]],"date-time":"2026-07-02T23:44:54Z","timestamp":1783035894556,"version":"3.54.6"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T00:00:00Z","timestamp":1667174400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2022,10,31]]},"abstract":"<jats:p>Scheduling transformations reorder operations in a program to improve locality and\/or parallelism. There are mature loop transformation frameworks such as the polyhedral model for composing and applying instance-wise scheduling transformations for loop nests.In recent years, there have been efforts to build frameworks for composing and applying scheduling transformations for nested recursion and loops, but these frameworks cannot employ the full power of transformations for loop nests since they have overly-restrictive representations. This paper describes a new framework, UniRec, that not only generalizes prior frameworks for reasoning about transformations on recursion, but also generalizes the unimodular framework, and hence unifies reasoning about perfectly-nested loops and recursion.<\/jats:p>","DOI":"10.1145\/3563333","type":"journal-article","created":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T20:23:35Z","timestamp":1667247815000},"page":"1264-1290","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["UniRec: a unimodular-like framework for nested recursions and loops"],"prefix":"10.1145","volume":"6","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6384-062X","authenticated-orcid":false,"given":"Kirshanthan","family":"Sundararajah","sequence":"first","affiliation":[{"name":"Purdue University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9900-2804","authenticated-orcid":false,"given":"Charitha","family":"Saumya","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6827-345X","authenticated-orcid":false,"given":"Milind","family":"Kulkarni","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,10,31]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"[n. d.]. PolyBench: Polyhedral Benchmark Suite. https:\/\/web.cse.ohio-state.edu\/~pouchet.2\/software\/polybench\/ Accessed: 2022-04-14. \t\t\t\t  [n. d.]. PolyBench: Polyhedral Benchmark Suite. https:\/\/web.cse.ohio-state.edu\/~pouchet.2\/software\/polybench\/ Accessed: 2022-04-14."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/11823230_11"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2012.107"},{"key":"e_1_2_1_4_1","unstructured":"Utpal Banerjee. 1991. Unimodular Transformations of Double Loops. In Languages and Compilers for Parallel Computing. \t\t\t\t  Utpal Banerjee. 1991. Unimodular Transformations of Double Loops. In Languages and Compilers for Parallel Computing."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2751205.2751226"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375595"},{"key":"#cr-split#-e_1_2_1_7_1.1","unstructured":"Stephen Chou and Saman Amarasinghe. 2021. Dynamic Sparse Tensor Algebra Compilation. https:\/\/doi.org\/10.48550\/ARXIV.2112.01394 10.48550\/ARXIV.2112.01394"},{"key":"#cr-split#-e_1_2_1_7_1.2","unstructured":"Stephen Chou and Saman Amarasinghe. 2021. Dynamic Sparse Tensor Algebra Compilation. https:\/\/doi.org\/10.48550\/ARXIV.2112.01394"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407835"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01379404"},{"key":"e_1_2_1_10_1","unstructured":"Paul Iannetta Laure Gonnord and Gabriel Radanne. 2021. Parallelizing Structural Transformations on Tarbres. 21. https:\/\/hal.inria.fr\/hal-03208466 \t\t\t\t  Paul Iannetta Laure Gonnord and Gabriel Radanne. 2021. Parallelizing Structural Transformations on Tarbres. 21. https:\/\/hal.inria.fr\/hal-03208466"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048104"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384616.2384643"},{"key":"e_1_2_1_13_1","volume-title":"Allen","author":"Kennedy Ken","year":"2001","unstructured":"Ken Kennedy and John R . Allen . 2001 . Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann Publishers Inc ., San Francisco, CA, USA. isbn:1558602860 Ken Kennedy and John R. Allen. 2001. Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. isbn:1558602860"},{"key":"e_1_2_1_14_1","volume-title":"Allen","author":"Kennedy Ken","year":"2002","unstructured":"Ken Kennedy and John R . Allen . 2002 . Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann Publishers Inc ., San Francisco, CA, USA. isbn:1-55860-286-0 Ken Kennedy and John R. Allen. 2002. Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. isbn:1-55860-286-0"},{"key":"e_1_2_1_15_1","volume-title":"Embedded Computer Systems: Architectures","author":"Kobeissi Salwa","unstructured":"Salwa Kobeissi , Alain Ketterlin , and Philippe Clauss . 2020. Rec2Poly: Converting Recursions to Polyhedral Optimized Loops Using an Inspector-Executor Strategy . In Embedded Computer Systems: Architectures , Modeling, and Simulation, Alex Orailoglu, Matthias Jung, and Marc Reichenbach (Eds.). Springer International Publishing , Cham . 96\u2013109. isbn:978-3-030-60939-9 Salwa Kobeissi, Alain Ketterlin, and Philippe Clauss. 2020. Rec2Poly: Converting Recursions to Polyhedral Optimized Loops Using an Inspector-Executor Strategy. In Embedded Computer Systems: Architectures, Modeling, and Simulation, Alex Orailoglu, Matthias Jung, and Marc Reichenbach (Eds.). Springer International Publishing, Cham. 96\u2013109. isbn:978-3-030-60939-9"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/53990.53993"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/125826.125848"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1147\/rd.32.0114"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC \u201916)","author":"Rajbhandari Samyam","unstructured":"Samyam Rajbhandari , Jinsung Kim , Sriram Krishnamoorthy , Louis-Noel Pouchet , Fabrice Rastello , Robert J. Harrison , and P. Sadayappan . 2016. A Domain-specific Compiler for a Parallel Multiresolution Adaptive Numerical Simulation Environment . In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC \u201916) . IEEE Press, Piscataway, NJ, USA. Article 40, 12 pages. isbn:978-1-4673-8815-3 http:\/\/dl.acm.org\/citation.cfm?id=3014904.3014958 Samyam Rajbhandari, Jinsung Kim, Sriram Krishnamoorthy, Louis-Noel Pouchet, Fabrice Rastello, Robert J. Harrison, and P. Sadayappan. 2016. A Domain-specific Compiler for a Parallel Multiresolution Adaptive Numerical Simulation Environment. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC \u201916). IEEE Press, Piscataway, NJ, USA. Article 40, 12 pages. isbn:978-1-4673-8815-3 http:\/\/dl.acm.org\/citation.cfm?id=3014904.3014958"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892228"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133900"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314626"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314592"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3093336.3037720"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3369583.3392692"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737972"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407876"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563333","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3563333","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:38:10Z","timestamp":1750178290000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563333"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,10,31]]},"references-count":28,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2022,10,31]]}},"alternative-id":["10.1145\/3563333"],"URL":"https:\/\/doi.org\/10.1145\/3563333","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,10,31]]},"assertion":[{"value":"2022-10-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}