{"id":"https://openalex.org/W2506829169","doi":"https://doi.org/10.1145/2907950.2907959","title":"A graph-based iterative compiler pass selection and phase ordering approach","display_name":"A graph-based iterative compiler pass selection and phase ordering approach","publication_year":2016,"publication_date":"2016-06-02","ids":{"openalex":"https://openalex.org/W2506829169","doi":"https://doi.org/10.1145/2907950.2907959","mag":"2506829169"},"language":"en","primary_location":{"id":"doi:10.1145/2907950.2907959","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2907950.2907959","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 17th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools, and Theory for Embedded Systems","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5084136060","display_name":"Ricardo Nobre","orcid":"https://orcid.org/0000-0003-1639-4545"},"institutions":[{"id":"https://openalex.org/I182534213","display_name":"Universidade do Porto","ror":"https://ror.org/043pwc612","country_code":"PT","type":"education","lineage":["https://openalex.org/I182534213"]},{"id":"https://openalex.org/I4210166615","display_name":"INESC TEC","ror":"https://ror.org/05fa8ka61","country_code":"PT","type":"nonprofit","lineage":["https://openalex.org/I4210125590","https://openalex.org/I4210166615"]}],"countries":["PT"],"is_corresponding":true,"raw_author_name":"Ricardo Nobre","raw_affiliation_strings":["University of Porto, Portugal / INESC TEC, Portugal"],"affiliations":[{"raw_affiliation_string":"University of Porto, Portugal / INESC TEC, Portugal","institution_ids":["https://openalex.org/I4210166615","https://openalex.org/I182534213"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5050683191","display_name":"Luiz G. A. Martins","orcid":"https://orcid.org/0000-0003-0168-1293"},"institutions":[{"id":"https://openalex.org/I80850581","display_name":"Universidade Federal de Uberl\u00e2ndia","ror":"https://ror.org/04x3wvr31","country_code":"BR","type":"education","lineage":["https://openalex.org/I80850581"]}],"countries":["BR"],"is_corresponding":false,"raw_author_name":"Luiz G. A. Martins","raw_affiliation_strings":["Federal University of Uberl\u00e2ndia, Brazil"],"affiliations":[{"raw_affiliation_string":"Federal University of Uberl\u00e2ndia, Brazil","institution_ids":["https://openalex.org/I80850581"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5007667456","display_name":"Jo\u00e3o M. P. Cardoso","orcid":"https://orcid.org/0000-0002-7353-1799"},"institutions":[{"id":"https://openalex.org/I182534213","display_name":"Universidade do Porto","ror":"https://ror.org/043pwc612","country_code":"PT","type":"education","lineage":["https://openalex.org/I182534213"]},{"id":"https://openalex.org/I4210166615","display_name":"INESC TEC","ror":"https://ror.org/05fa8ka61","country_code":"PT","type":"nonprofit","lineage":["https://openalex.org/I4210125590","https://openalex.org/I4210166615"]}],"countries":["PT"],"is_corresponding":false,"raw_author_name":"Jo\u00e3o M. P. Cardoso","raw_affiliation_strings":["University of Porto, Portugal / INESC TEC, Portugal"],"affiliations":[{"raw_affiliation_string":"University of Porto, Portugal / INESC TEC, Portugal","institution_ids":["https://openalex.org/I4210166615","https://openalex.org/I182534213"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5084136060"],"corresponding_institution_ids":["https://openalex.org/I182534213","https://openalex.org/I4210166615"],"apc_list":null,"apc_paid":null,"fwci":4.4147,"has_fulltext":false,"cited_by_count":21,"citation_normalized_percentile":{"value":0.94780891,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"21","last_page":"30"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9991999864578247,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10904","display_name":"Embedded Systems Design Techniques","score":0.9842000007629395,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12808","display_name":"Ferroelectric and Negative Capacitance Devices","score":0.9800000190734863,"subfield":{"id":"https://openalex.org/subfields/2208","display_name":"Electrical and Electronic Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.9283995032310486},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8589906096458435},{"id":"https://openalex.org/keywords/interprocedural-optimization","display_name":"Interprocedural optimization","score":0.6646208763122559},{"id":"https://openalex.org/keywords/speedup","display_name":"Speedup","score":0.6520401835441589},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.633842408657074},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.5956115126609802},{"id":"https://openalex.org/keywords/pipeline","display_name":"Pipeline (software)","score":0.5461493730545044},{"id":"https://openalex.org/keywords/graph","display_name":"Graph","score":0.5335420370101929},{"id":"https://openalex.org/keywords/loop-optimization","display_name":"Loop optimization","score":0.4648384749889374},{"id":"https://openalex.org/keywords/performance-improvement","display_name":"Performance improvement","score":0.41643020510673523},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3961537182331085},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.2847389578819275},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.2802049517631531}],"concepts":[{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.9283995032310486},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8589906096458435},{"id":"https://openalex.org/C111564260","wikidata":"https://www.wikidata.org/wiki/Q4288856","display_name":"Interprocedural optimization","level":5,"score":0.6646208763122559},{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.6520401835441589},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.633842408657074},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.5956115126609802},{"id":"https://openalex.org/C43521106","wikidata":"https://www.wikidata.org/wiki/Q2165493","display_name":"Pipeline (software)","level":2,"score":0.5461493730545044},{"id":"https://openalex.org/C132525143","wikidata":"https://www.wikidata.org/wiki/Q141488","display_name":"Graph","level":2,"score":0.5335420370101929},{"id":"https://openalex.org/C29331672","wikidata":"https://www.wikidata.org/wiki/Q3354468","display_name":"Loop optimization","level":4,"score":0.4648384749889374},{"id":"https://openalex.org/C2778915421","wikidata":"https://www.wikidata.org/wiki/Q3643177","display_name":"Performance improvement","level":2,"score":0.41643020510673523},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3961537182331085},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.2847389578819275},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.2802049517631531},{"id":"https://openalex.org/C21547014","wikidata":"https://www.wikidata.org/wiki/Q1423657","display_name":"Operations management","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2907950.2907959","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2907950.2907959","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 17th ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools, and Theory for Embedded Systems","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Industry, innovation and infrastructure","score":0.4099999964237213,"id":"https://metadata.un.org/sdg/9"}],"awards":[{"id":"https://openalex.org/G8337691995","display_name":null,"funder_award_id":"SFRH/BD/82606/2011","funder_id":"https://openalex.org/F4320334779","funder_display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia"}],"funders":[{"id":"https://openalex.org/F4320334779","display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia","ror":"https://ror.org/00snfqn58"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":25,"referenced_works":["https://openalex.org/W207502944","https://openalex.org/W1963797301","https://openalex.org/W1984845936","https://openalex.org/W1994101511","https://openalex.org/W2000032309","https://openalex.org/W2004250488","https://openalex.org/W2024060531","https://openalex.org/W2029978658","https://openalex.org/W2031706008","https://openalex.org/W2052934867","https://openalex.org/W2056823637","https://openalex.org/W2077115703","https://openalex.org/W2091689272","https://openalex.org/W2097980267","https://openalex.org/W2106296728","https://openalex.org/W2147347061","https://openalex.org/W2156560068","https://openalex.org/W2164056230","https://openalex.org/W2168519934","https://openalex.org/W2330621167","https://openalex.org/W3011457960","https://openalex.org/W3023540311","https://openalex.org/W4241758965","https://openalex.org/W4248557782","https://openalex.org/W4249513490"],"related_works":["https://openalex.org/W4246454774","https://openalex.org/W2083681681","https://openalex.org/W2121223013","https://openalex.org/W2091689272","https://openalex.org/W1488300410","https://openalex.org/W1597127505","https://openalex.org/W2099845707","https://openalex.org/W2053033210","https://openalex.org/W2778498407","https://openalex.org/W4249323025"],"abstract_inverted_index":{"Nowadays":[0],"compilers":[1],"include":[2],"tens":[3],"or":[4,266],"hundreds":[5],"of":[6,16,43,62,123,166,184,210,243,276],"optimization":[7,121],"passes,":[8],"which":[9],"makes":[10],"it":[11,271],"difficult":[12],"to":[13,47,75,100,203,229],"find":[14],"sequences":[15,257],"optimizations":[17],"that":[18,258],"achieve":[19,204],"compiled":[20,109],"code":[21,110],"more":[22],"optimized":[23],"than":[24,114],"the":[25,41,44,53,60,81,101,115,119,124,134,169,173,213,238,241,251],"one":[26,116,253],"obtained":[27,128,231],"using":[28,172,237],"typical":[29],"compiler":[30,45,160,256],"options":[31],"such":[32,79],"as":[33,80],"-O2":[34],"and":[35,49,72,96,104,146,181,188,278,282],"-O3.":[36],"The":[37,56,127],"problem":[38],"involves":[39],"both":[40],"selection":[42,103],"passes":[46,180],"use":[48,61],"their":[50],"ordering":[51,105],"in":[52,84,108,260],"compilation":[54],"pipeline.":[55],"improvement":[57],"achieved":[58,117,136,272],"by":[59,137],"custom":[63],"phase":[64,102],"orders":[65],"for":[66,280],"each":[67],"function":[68],"can":[69],"be":[70],"significant,":[71],"thus":[73],"important":[74],"satisfy":[76],"strict":[77],"requirements":[78],"ones":[82,135],"present":[83,93],"high-performance":[85],"embedded":[86],"computing":[87],"systems.":[88],"In":[89],"this":[90],"paper":[91],"we":[92],"a":[94,155,164,182,205],"new":[95,198,248],"fast":[97],"iterative":[98,139,234],"approach":[99,149],"challenges":[106],"resulting":[107],"with":[111,118,133,232],"higher":[112],"performance":[113,129,208,261],"standard":[120],"levels":[122],"LLVM":[125,179],"compiler.":[126],"improvements":[130,262],"are":[131],"comparable":[132],"other":[138],"approaches":[140],"while":[141],"requiring":[142],"considerably":[143],"less":[144,267],"time":[145],"resources.":[147],"Our":[148],"is":[150,201,250],"based":[151],"on":[152],"sampling":[153],"over":[154,212],"graph":[156],"representing":[157],"transitions":[158],"between":[159],"passes.":[161],"We":[162],"performed":[163],"number":[165],"experiments":[167],"targeting":[168],"LEON3":[170],"microarchitecture":[171],"Clang/LLVM":[174],"3.7":[175],"compiler,":[176],"considering":[177,220,264],"140":[178],"set":[183,242],"42":[185],"representative":[186],"signal":[187],"image":[189],"processing":[190],"C":[191],"functions.":[192],"An":[193],"exhaustive":[194],"cross-validation":[195],"shows":[196],"our":[197,247],"exploration":[199,244,268],"method":[200,249],"able":[202],"geometric":[206,224,273],"mean":[207,225,274],"speedup":[209],"1.28x":[211],"best":[214],"individually":[215],"selected":[216],"-OX":[217],"flag":[218],"when":[219,263],"100,000":[221],"iterations;":[222],"versus":[223],"speedups":[226,275],"from":[227],"1.16x":[228,279],"1.25x":[230],"state-of-the-art":[233],"methods":[235,245],"not":[236],"graph.":[239],"From":[240],"tested,":[246],"only":[252],"consistently":[254],"finding":[255],"result":[259],"100":[265,283],"iterations.":[269],"Specifically,":[270],"1.08x":[277],"10":[281],"iterations,":[284],"respectively.":[285]},"counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":7},{"year":2017,"cited_by_count":4}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
