{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,24]],"date-time":"2026-02-24T16:50:01Z","timestamp":1771951801383,"version":"3.50.1"},"reference-count":63,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2024,11,19]],"date-time":"2024-11-19T00:00:00Z","timestamp":1731974400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"European High-Performance Computing Joint Undertaking EuroHPC","award":["955495 (MICROCARD)"],"award-info":[{"award-number":["955495 (MICROCARD)"]}]},{"name":"Horizon 2020 programme of the European Union (EU), and France, Italy, Germany, Austria, Norway, and Switzerland"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2024,12,31]]},"abstract":"<jats:p>Since the 1990s, many implementations of polyhedral compilers have been written and distributed, either as source-to-source translating compilers or integrated into wider-purpose compilers. This article provides a survey on those various available implementations as of today, 2024.<\/jats:p>\n          <jats:p>First, we list and describe most commonly available polyhedral schedulers and compiler implementations. Then, we compare the general-purpose polyhedral compilers using two main criteria\u2014robustness and performance\u2014on the PolyBench\/C set of benchmarks.<\/jats:p>","DOI":"10.1145\/3674735","type":"journal-article","created":{"date-parts":[[2024,6,22]],"date-time":"2024-06-22T09:17:17Z","timestamp":1719047837000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["A Survey of General-purpose Polyhedral Compilers"],"prefix":"10.1145","volume":"21","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1382-2399","authenticated-orcid":false,"given":"Arun","family":"Thangamani","sequence":"first","affiliation":[{"name":"ICube, University of Strasbourg, Strasbourg, France and CAMUS, Inria, Villers-les-Nancy, France"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3481-4881","authenticated-orcid":false,"given":"Vincent","family":"Loechner","sequence":"additional","affiliation":[{"name":"ICube, University of Strasbourg, Strasbourg, France and CAMUS, Inria, Villers-les-Nancy, France"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0065-8083","authenticated-orcid":false,"given":"St\u00e9phane","family":"Genaud","sequence":"additional","affiliation":[{"name":"ICube, University of Strasbourg, Strasbourg, France and CAMUS, Inria, Villers-les-Nancy, France"}]}],"member":"320","published-online":{"date-parts":[[2024,11,19]]},"reference":[{"key":"e_1_3_3_2_2","unstructured":"GitHub. 2014. Candl\u2014Data Dependence Analysis Tool in the Polyhedral Model. Retrieved June 26 2024 from https:\/\/github.com\/periscop\/candl"},{"key":"e_1_3_3_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/WCRE.2012.47"},{"key":"e_1_3_3_4_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45574-4_4"},{"key":"e_1_3_3_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/3197978"},{"key":"e_1_3_3_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/197405.197406"},{"key":"e_1_3_3_7_2","volume-title":"Proceedings of the IEEE\/ACM International Symposium on Code Generation and Optimization","author":"Baghdadi Riyadh","year":"2019","unstructured":"Riyadh Baghdadi, Jessica Ray, Malek Ben Romdhane, Emanuele Del Sozzo, Abdurrahman Akkas, Yunming Zhang, Patricia Suriana, Shoaib Kamil, and Saman Amarasinghe. 2019. Tiramisu: A polyhedral compiler for expressing fast and portable code. In Proceedings of the IEEE\/ACM International Symposium on Code Generation and Optimization."},{"key":"e_1_3_3_8_2","unstructured":"Riyadh Baghdadi Jessica Ray Malek Ben Romdhane Emanuele Del Sozzo Abdurrahman Akkas Yunming Zhang Patricia Suriana Shoaib Kamil and Saman Amarasinghe. 2019. Tiramisu Compiler. Retrieved June 26 2024 from https:\/\/github.com\/Tiramisu-Compiler\/tiramisu"},{"key":"e_1_3_3_9_2","first-page":"7","volume-title":"Proceedings of the IEEE International Conference on Parallel Architecture and Compilation Techniques (PACT \u201904)","author":"Bastoul C\u00e9dric","year":"2004","unstructured":"C\u00e9dric Bastoul. 2004. Code generation in the polyhedral model is easier than you think. In Proceedings of the IEEE International Conference on Parallel Architecture and Compilation Techniques (PACT \u201904). 7\u201316."},{"key":"e_1_3_3_10_2","volume-title":"Extracting Polyhedral Representation from High Level Languages","author":"Bastoul C.","year":"2008","unstructured":"C. Bastoul. 2008. Extracting Polyhedral Representation from High Level Languages. Technical Report. LRI, Paris-Sud University."},{"key":"e_1_3_3_11_2","volume-title":"OpenScop: A Specification and a Library for Data Exchange in Polyhedral Compilation Tools","author":"Bastoul C.","year":"2011","unstructured":"C. Bastoul. 2011. OpenScop: A Specification and a Library for Data Exchange in Polyhedral Compilation Tools. Technical Report. Paris-Sud University, France."},{"key":"e_1_3_3_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375595"},{"key":"e_1_3_3_13_2","volume-title":"CHiLL: A Framework for Composing High-Level Loop Transformations","author":"Chen Chun","year":"2008","unstructured":"Chun Chen, Jacqueline Chame, and Mary Hall. 2008. CHiLL: A Framework for Composing High-Level Loop Transformations. Technical Report. University of Southern California."},{"key":"e_1_3_3_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/3363562"},{"key":"e_1_3_3_15_2","unstructured":"Philippe Clauss Matthew Wahab Juan Manuel Martinez Caamano Aravind Sukumaran-Rajam Artiom Baloian Manuel Selva and Raquel Lazcano. 2017. APOLLO: Automatic Speculative POLyhedral Loop Optimizer. Retrieved June 26 2024 from https:\/\/webpages.gitlabpages.inria.fr\/apollo\/about"},{"key":"e_1_3_3_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO57630.2024.10444791"},{"key":"e_1_3_3_17_2","unstructured":"GCC Compiler Developers. 2011. GCC\u2014The GNU Compiler Collection. Retrieved June 26 2024 from https:\/\/gcc.gnu.org\/"},{"key":"e_1_3_3_18_2","unstructured":"Linux Developers. 2022. Perf Profiling Tool. Retrieved June 26 2024 from https:\/\/perf.wiki.kernel.org\/index.php\/Main_Page"},{"key":"e_1_3_3_19_2","unstructured":"NASA Advanced Supercomputing Division. n.d. NAS Parallel Benchmarks. Retrieved June 26 2024 from https:\/\/www.nas.nasa.gov\/software\/npb.html"},{"key":"e_1_3_3_20_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01379404"},{"key":"e_1_3_3_21_2","volume-title":"Solving Systems of Affine (In)equalities","author":"Feautrier P.","year":"2002","unstructured":"P. Feautrier, J. Collard, and C. Bastoul. 2002. Solving Systems of Affine (In)equalities. Technical Report. PRiSM, Versailles University."},{"key":"e_1_3_3_22_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-387-09766-4_502"},{"key":"e_1_3_3_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/CAHPC.2018.8645947"},{"key":"e_1_3_3_24_2","doi-asserted-by":"publisher","DOI":"10.1142\/S0129626412500107"},{"key":"e_1_3_3_25_2","unstructured":"PolyMage lab Developers. 2023. PolyMage. Retrieved June 26 2024 from https:\/\/www.polymagelabs.com\/"},{"key":"e_1_3_3_26_2","unstructured":"Lawrence Livermore National Laboratory. 1993. Livermore Benchmarks. Retrieved June 26 2024 from https:\/\/netlib.org\/benchmark\/livermore"},{"key":"e_1_3_3_27_2","unstructured":"Polly Labs. 2014. Integer Set Library. Retrieved June 26 2024 from https:\/\/www.openhub.net\/p\/isl"},{"key":"e_1_3_3_28_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"e_1_3_3_29_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO51591.2021.9370308"},{"key":"e_1_3_3_30_2","unstructured":"Corinna G. Lee. 1998. UTDSP Benchmark. Retrieved June 26 2024 from https:\/\/www.eecg.utoronto.ca\/corinna\/DSP\/infrastructure\/UTDSP.html"},{"key":"e_1_3_3_31_2","first-page":"539","volume-title":"Languages and Compilers for Parallel Computing","author":"Lee Sang-Ik","year":"2004","unstructured":"Sang-Ik Lee, Troy A. Johnson, and Rudolf Eigenmann. 2004. Cetus\u2014An extensible compiler infrastructure for source-to-source transformation. In Languages and Compilers for Parallel Computing, Lawrence Rauchwerger (Ed.). Springer, Berlin, Germany, 539\u2013553."},{"key":"e_1_3_3_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2020.3030548"},{"key":"e_1_3_3_33_2","unstructured":"Vincent Loechner. 1999. PolyLib: A Library of Polyhedral Functions. Retrieved June 26 2024 from https:\/\/github.com\/vincentloechner\/polylib"},{"key":"e_1_3_3_34_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-0-387-09766-4_515"},{"key":"e_1_3_3_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/PACT52795.2021.00011"},{"key":"e_1_3_3_36_2","doi-asserted-by":"publisher","DOI":"10.1109\/ACCESS.2022.3147846"},{"key":"e_1_3_3_37_2","doi-asserted-by":"publisher","DOI":"10.15439\/2015F34"},{"key":"e_1_3_3_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/3330345.3330377"},{"key":"e_1_3_3_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/3485539"},{"key":"e_1_3_3_40_2","unstructured":"Sebastian Pop Albert Cohen C\u00e9dric Bastoul Sylvain Girbal Georges-Andr\u00e9 Silber and Nicolas Vasilache. 2006. GRAPHITE: Polyhedral analyses and optimizations for GCC. In Proceedings of the GCC Developers\u2019 Summit."},{"key":"e_1_3_3_41_2","unstructured":"Louis-No\u00ebl Pouchet. 2012. PoCC\u2014The Polyhedral Compiler Collection. Retrieved June 26 2024 from http:\/\/web.cs.ucla.edu\/pouchet\/software\/pocc\/"},{"key":"e_1_3_3_42_2","unstructured":"Louis-No\u00ebl Pouchet. 2022. PoCC Version 1.6.0-alpha. Retrieved June 26 2024 from http:\/\/pocc.sf.net"},{"key":"e_1_3_3_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926449"},{"key":"e_1_3_3_44_2","unstructured":"Louis-No\u00ebl Pouchet and P. Sadayappan. 2022. PolyOpt: A Framework for Polyhedral Optimization in the ROSE Compiler. Retrieved June 26 2024 from https:\/\/github.com\/rose-compiler\/rose\/tree\/v0.11.100.0\/projects\/PolyOpt2"},{"key":"e_1_3_3_45_2","unstructured":"Louis-No\u00ebl Pouchet and Tomofumi Yuki. 2022. PolyBench\/C Version 4.2.1-beta. Retrieved June 26 2024 from http:\/\/polybench.sf.net"},{"key":"e_1_3_3_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/135226.135233"},{"key":"e_1_3_3_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/263580.263637"},{"key":"e_1_3_3_48_2","doi-asserted-by":"publisher","DOI":"10.1109\/PATMOS.2016.7833682"},{"key":"e_1_3_3_49_2","volume-title":"Proceedings of the Cetus Users and Compiler Infrastructure Workshop, in Conjunction with PACT","volume":"2011","author":"Quinlan Dan","year":"2011","unstructured":"Dan Quinlan and Chunhua Liao. 2011. The ROSE source-to-source compiler infrastructure. In Proceedings of the Cetus Users and Compiler Infrastructure Workshop, in Conjunction with PACT, Vol. 2011."},{"key":"e_1_3_3_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454035"},{"key":"e_1_3_3_51_2","unstructured":"Meta Research. 2018. Tensor Comprehensions. Retrieved June 26 2024 from https:\/\/github.com\/facebookresearch\/TensorComprehensions"},{"key":"e_1_3_3_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/800192.805690"},{"key":"e_1_3_3_53_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2013.6693108"},{"key":"e_1_3_3_54_2","unstructured":"Jan Sj\u00f6din Sebastian Pop Harsha Jagasia Tobias Grosser and Antoniu Pop. 2009. Design of graphite and the Polyhedral Compilation Package. In Proceedings of the GCC Developers\u2019 Summit."},{"key":"e_1_3_3_55_2","unstructured":"Huawei Technologies. 2023. MindSpore AI Computing Framework. Retrieved June 26 2024 from https:\/\/github.com\/mindspore-ai\/mindspore"},{"key":"e_1_3_3_56_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11261-4_11"},{"key":"e_1_3_3_57_2","unstructured":"Nicolas Vasilache Oleksandr Zinenko Theodoros Theodoridis Priya Goyal Zachary DeVito William S. Moses Sven Verdoolaege Andrew Adams and Albert Cohen. 2018. Tensor Comprehensions: Framework-agnostic high-performance machine learning abstractions. arxiv:1802.04730[cs.PL] (2018)."},{"key":"e_1_3_3_58_2","doi-asserted-by":"publisher","unstructured":"Sven Verdoolaege Juan Carlos Juega Albert Cohen Jos\u00e9 Ignacio G\u00f3mez Christian Tenllado and Francky Catthoor. 2013. Polyhedral parallel code generation for CUDA. ACM Transactions on Architecture and Code Optimization 9 4 (2013) Article 54 23 pages. DOI:10.1145\/2400682.2400713","DOI":"10.1145\/2400682.2400713"},{"key":"e_1_3_3_59_2","article-title":"Polyhedral extraction tool","author":"Verdoolaege Sven","year":"2012","unstructured":"Sven Verdoolaege and Tobias Grosser. 2012. Polyhedral extraction tool. In Proceedings of the 2nd International Workshop on Polyhedral Compilation Techniques.https:\/\/impact-workshop.org\/impact2012\/workshop_IMPACT\/verdoolaege.pdf","journal-title":"Proceedings of the 2nd International Workshop on Polyhedral Compilation Techniques."},{"key":"e_1_3_3_60_2","volume-title":"Proceedings of the 4th Workshop on Polyhedral Compilation Techniques, Associated with HiPEAC (IMPACT \u201914)","author":"Verdoolaege Sven","year":"2014","unstructured":"Sven Verdoolaege, Serge Guelton, Tobias Grosser, and Albert Cohen. 2014. Schedule trees. In Proceedings of the 4th Workshop on Polyhedral Compilation Techniques, Associated with HiPEAC (IMPACT \u201914). https:\/\/inria.hal.science\/hal-00911894"},{"key":"e_1_3_3_61_2","unstructured":"Sven Verdoolaege Manjunath Kudlur Rob Schreiber and Harinath Kamepalli. 2020. Generating SIMD instructions for Cerebras CS-1 using polyhedral compilation techniques. In Proceedings of the 2020 Cooperative IMPACT Conference (IMPACT \u201920). 1\u201311."},{"key":"e_1_3_3_62_2","unstructured":"Tim Zerrell and Jeremy Bruestle. 2019. Stripe: Tensor compilation via the nested polyhedral model. arxiv:1903.06498[cs.DC] (2019)."},{"key":"e_1_3_3_63_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454106"},{"key":"e_1_3_3_64_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2020.110884"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3674735","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3674735","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T00:57:50Z","timestamp":1750294670000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3674735"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,11,19]]},"references-count":63,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2024,12,31]]}},"alternative-id":["10.1145\/3674735"],"URL":"https:\/\/doi.org\/10.1145\/3674735","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,11,19]]},"assertion":[{"value":"2024-01-13","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-06-05","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2024-11-19","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}