{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T22:54:44Z","timestamp":1775084084952,"version":"3.50.1"},"reference-count":55,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2017,9,6]],"date-time":"2017-09-06T00:00:00Z","timestamp":1504656000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"EU Commission H2020-FET-HPC program","award":["ANTAREX-671623"],"award-info":[{"award-number":["ANTAREX-671623"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2017,9,30]]},"abstract":"<jats:p>\n            Recent compilers offer a vast number of multilayered optimizations targeting different code segments of an application. Choosing among these optimizations can significantly impact the performance of the code being optimized. The selection of the right set of compiler optimizations for a particular code segment is a very hard problem, but finding the best ordering of these optimizations adds further complexity. Finding the best ordering represents a long standing problem in compilation research, named the\n            <jats:italic>phase-ordering<\/jats:italic>\n            problem. The traditional approach of constructing compiler heuristics to solve this problem simply cannot cope with the enormous complexity of choosing the right ordering of optimizations for every code segment in an application.\n          <\/jats:p>\n          <jats:p>This article proposes an automatic optimization framework we call MiCOMP, which &lt;u&gt;Mi&lt;\/u&gt;tigates the &lt;u&gt;Com&lt;\/u&gt;piler &lt;u&gt;P&lt;\/u&gt;hase-ordering problem. We perform phase ordering of the optimizations in LLVM\u2019s highest optimization level using optimization sub-sequences and machine learning. The idea is to cluster the optimization passes of LLVM\u2019s O3 setting into different clusters to predict the speedup of a complete sequence of all the optimization clusters instead of having to deal with the ordering of more than 60 different individual optimizations. The predictive model uses (1) dynamic features, (2) an encoded version of the compiler sequence, and (3) an exploration heuristic to tackle the problem.<\/jats:p>\n          <jats:p>Experimental results using the LLVM compiler framework and the Cbench suite show the effectiveness of the proposed clustering and encoding techniques to application-based reordering of passes, while using a number of predictive models. We perform statistical analysis on the results and compare against (1) random iterative compilation, (2) standard optimization levels, and (3) two recent prediction approaches. We show that MiCOMP\u2019s iterative compilation using its sub-sequences can reach an average performance speedup of 1.31 (up to 1.51). Additionally, we demonstrate that MiCOMP\u2019s prediction model outperforms the -O1, -O2, and -O3 optimization levels within using just a few predictions and reduces the prediction error rate down to only 5%. Overall, it achieves 90% of the available speedup by exploring less than 0.001% of the optimization space.<\/jats:p>","DOI":"10.1145\/3124452","type":"journal-article","created":{"date-parts":[[2017,9,7]],"date-time":"2017-09-07T13:02:09Z","timestamp":1504789329000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":76,"title":["MiCOMP"],"prefix":"10.1145","volume":"14","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8606-6497","authenticated-orcid":false,"given":"Amir H.","family":"Ashouri","sequence":"first","affiliation":[{"name":"University of Toronto, ON Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrea","family":"Bignoli","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gianluca","family":"Palermo","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Cristina","family":"Silvano","sequence":"additional","affiliation":[{"name":"Politecnico di Milano, Italy"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Sameer","family":"Kulkarni","sequence":"additional","affiliation":[{"name":"University of Delaware, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"John","family":"Cavazos","sequence":"additional","affiliation":[{"name":"University of Delaware, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,9,6]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"OCEANS: Optimizing compilers for embedded applications. Euro-Par\u201997 Parallel Processing","author":"Aarts Bas","year":"1997","unstructured":"Bas Aarts , Michel Barreteau , Fran\u00e7ois Bodin , Peter Brinkhaus , Zbigniew Chamski , Henri-Pierre Charles , Christine Eisenbeis , John Gurd , Jan Hoogerbrugge , Ping Hu , and others. 1997 . OCEANS: Optimizing compilers for embedded applications. Euro-Par\u201997 Parallel Processing (1997), 1351--1356. Bas Aarts, Michel Barreteau, Fran\u00e7ois Bodin, Peter Brinkhaus, Zbigniew Chamski, Henri-Pierre Charles, Christine Eisenbeis, John Gurd, Jan Hoogerbrugge, Ping Hu, and others. 1997. OCEANS: Optimizing compilers for embedded applications. Euro-Par\u201997 Parallel Processing (1997), 1351--1356."},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2006.37"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/998300.997196"},{"key":"e_1_2_2_4_1","unstructured":"Amir Hossein Ashouri. 2012. Design space exploration methodology for compiler parameters in VLIW processors. Master\u2019s thesis. Politecnico di Milano Italy. http:\/\/hdl.handle.net\/10589\/72083.  Amir Hossein Ashouri. 2012. Design space exploration methodology for compiler parameters in VLIW processors. Master\u2019s thesis. Politecnico di Milano Italy. http:\/\/hdl.handle.net\/10589\/72083."},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2872421.2872424"},{"key":"e_1_2_2_7_1","volume-title":"A survey on compiler autotuning using machine learning. ACM Trans. Computing Surveys (CSUR)","author":"Ashouri Amir H.","year":"2017","unstructured":"Amir H. Ashouri , William Killian , John Cavazos , Gianluca Palermo , and Cristina Silvano . 2017. A survey on compiler autotuning using machine learning. ACM Trans. Computing Surveys (CSUR) ( 2017 ). Amir H. Ashouri, William Killian, John Cavazos, Gianluca Palermo, and Cristina Silvano. 2017. A survey on compiler autotuning using machine learning. ACM Trans. Computing Surveys (CSUR) (2017)."},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2928270"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESTIMedia.2014.6962349"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/VLSI-SoC.2013.6673262"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.3115\/1072133.1072204"},{"key":"e_1_2_2_12_1","volume-title":"Workshop on Profile and Feedback-Directed Compilation.","author":"Bodin Fran\u00e7ois","year":"1998","unstructured":"Fran\u00e7ois Bodin , Toru Kisuki , Peter Knijnenburg , Mike O\u2019Boyle , and Erven Rohou . 1998 . Iterative compilation in a non-linear optimisation space . In Workshop on Profile and Feedback-Directed Compilation. Fran\u00e7ois Bodin, Toru Kisuki, Peter Knijnenburg, Mike O\u2019Boyle, and Erven Rohou. 1998. Iterative compilation in a non-linear optimisation space. In Workshop on Profile and Feedback-Directed Compilation."},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2007.32"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/996893.996864"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2355585.2355594"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/3091622.3091636"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1070891.1065921"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/315253.314414"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1880043.1880047"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1656274.1656278"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807591.2807644"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2007.56"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.ijforecast.2006.03.001"},{"key":"e_1_2_2_24_1","volume-title":"2013 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES). IEEE, 1--10","author":"Michael","unstructured":"Michael R. Jantz and Prasad A. Kulkarni. 2013. Exploiting phase inter-dependencies for faster iterative compiler optimization phase order searches . In 2013 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES). IEEE, 1--10 . Michael R. Jantz and Prasad A. Kulkarni. 2013. Exploiting phase inter-dependencies for faster iterative compiler optimization phase order searches. In 2013 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES). IEEE, 1--10."},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0169-7439(01)00198-8"},{"key":"e_1_2_2_26_1","volume-title":"Applied Multivariate Statistical Analysis","author":"Johnson Richard Arnold","unstructured":"Richard Arnold Johnson , Dean W. Wichern , and others. 1992. Applied Multivariate Statistical Analysis . Vol. 4 . Prentice Hall , Englewood Cliffs, NJ . Richard Arnold Johnson, Dean W. Wichern, and others. 1992. Applied Multivariate Statistical Analysis. Vol. 4. Prentice Hall, Englewood Cliffs, NJ."},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.5555\/517554.825767"},{"key":"e_1_2_2_28_1","unstructured":"Sotiris B. Kotsiantis I. Zaharakis and P. Pintelas. 2007. Supervised machine learning: A review of classification techniques. (2007).  Sotiris B. Kotsiantis I. Zaharakis and P. Pintelas. 2007. Supervised machine learning: A review of classification techniques. (2007)."},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1509864.1509865"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2398857.2384628"},{"key":"e_1_2_2_31_1","unstructured":"LLVM 2017. LLVM Compiler Passes. Retrieved from http:\/\/www.llvm.org\/docs\/Passes.html.  LLVM 2017. LLVM Compiler Passes. Retrieved from http:\/\/www.llvm.org\/docs\/Passes.html."},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/321992.322000"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065034"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2883614"},{"key":"e_1_2_2_35_1","volume-title":"Artificial Intelligence: Methodology, Systems, and Applications","author":"Monsifrot Antoine","unstructured":"Antoine Monsifrot , Fran\u00e7ois Bodin , and Rene Quiniou . 2002. A machine learning approach to automatic production of compiler heuristics . In Artificial Intelligence: Methodology, Systems, and Applications . Springer , 41--50. Antoine Monsifrot, Fran\u00e7ois Bodin, and Rene Quiniou. 2002. A machine learning approach to automatic production of compiler heuristics. In Artificial Intelligence: Methodology, Systems, and Applications. Springer, 41--50."},{"key":"e_1_2_2_36_1","first-page":"929","article-title":"Learning to schedule straight-line code","volume":"97","author":"Moss J Eliot B.","year":"1997","unstructured":"J Eliot B. Moss , Paul E. Utgoff , John Cavazos , Doina Precup , Darko Stefanovic , Carla Brodley , and David Scheeff . 1997 . Learning to schedule straight-line code . In NIPS , Vol. 97. 929 -- 935 . J Eliot B. Moss, Paul E. Utgoff, John Cavazos, Doina Precup, Darko Stefanovic, Carla Brodley, and David Scheeff. 1997. Learning to schedule straight-line code. In NIPS, Vol. 97. 929--935.","journal-title":"NIPS"},{"key":"e_1_2_2_37_1","volume-title":"Applied Linear Statistical Models","author":"Neter John","unstructured":"John Neter , Michael H. Kutner , Christopher J. Nachtsheim , and William Wasserman . 1996. Applied Linear Statistical Models . Vol. 4 . Irwin , Chicago . John Neter, Michael H. Kutner, Christopher J. Nachtsheim, and William Wasserman. 1996. Applied Linear Statistical Models. Vol. 4. Irwin, Chicago."},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2764967.2764978"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2764967.2764978"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2907950.2907959"},{"key":"e_1_2_2_41_1","volume-title":"Proceedings of the 19th Workshop on Compilers for Parallel Computing (CPC\u201916)","author":"Nobre Ricardo","unstructured":"Ricardo Nobre , Lu\u0131s Reis , and Joao M. P. Cardoso . 2016. Compiler phase ordering as an orthogonal approach for reducing energy consumption . In Proceedings of the 19th Workshop on Compilers for Parallel Computing (CPC\u201916) . Ricardo Nobre, Lu\u0131s Reis, and Joao M. P. Cardoso. 2016. Compiler phase ordering as an orthogonal approach for reducing energy consumption. In Proceedings of the 19th Workshop on Compilers for Parallel Computing (CPC\u201916)."},{"key":"e_1_2_2_42_1","first-page":"974","article-title":"On-the-fly one-hot encoding of leading zero count. (Oct. 26, 1999)","volume":"5","author":"Orup Holger","year":"1999","unstructured":"Holger Orup . 1999 . On-the-fly one-hot encoding of leading zero count. (Oct. 26, 1999) . US Patent 5 , 974 ,432. Holger Orup. 1999. On-the-fly one-hot encoding of leading zero count. (Oct. 26, 1999). US Patent 5,974,432.","journal-title":"US Patent"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/72.159058"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/2259016.2259042"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-013-0241-1"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2038698.2038711"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2400682.2400715"},{"key":"e_1_2_2_48_1","volume-title":"Introduction to Recommender Systems Handbook","author":"Ricci Francesco","unstructured":"Francesco Ricci , Lior Rokach , and Bracha Shapira . 2011. Introduction to Recommender Systems Handbook . Springer . Francesco Ricci, Lior Rokach, and Bracha Shapira. 2011. Introduction to Recommender Systems Handbook. Springer."},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/371920.372071"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cosrev.2007.05.001"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0219530503000089"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781141"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1594834.1480915"},{"key":"e_1_2_2_55_1","unstructured":"Spyridon Triantafyllis etal 2003. Compiler optimization-space exploration. In Code Generation and Optimization (CGO\u201903). IEEE 204--215.   Spyridon Triantafyllis et al. 2003. Compiler optimization-space exploration. In Code Generation and Optimization (CGO\u201903). IEEE 204--215."},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/1014194.800942"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.patcog.2013.04.013"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3124452","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3124452","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T02:11:23Z","timestamp":1750212683000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3124452"}},"subtitle":["Mitigating the Compiler Phase-Ordering Problem Using Optimization Sub-Sequences and Machine Learning"],"short-title":[],"issued":{"date-parts":[[2017,9,6]]},"references-count":55,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2017,9,30]]}},"alternative-id":["10.1145\/3124452"],"URL":"https:\/\/doi.org\/10.1145\/3124452","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,9,6]]},"assertion":[{"value":"2016-09-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-06-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-09-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}