{"id":"https://openalex.org/W12803156","doi":"https://doi.org/10.1145/3200920","title":"Survey on Combinatorial Register Allocation and Instruction Scheduling","display_name":"Survey on Combinatorial Register Allocation and Instruction Scheduling","publication_year":2019,"publication_date":"2019-06-18","ids":{"openalex":"https://openalex.org/W12803156","doi":"https://doi.org/10.1145/3200920","mag":"12803156"},"language":"en","primary_location":{"id":"doi:10.1145/3200920","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3200920","pdf_url":null,"source":{"id":"https://openalex.org/S157921468","display_name":"ACM Computing Surveys","issn_l":"0360-0300","issn":["0360-0300","1557-7341"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Computing Surveys","raw_type":"journal-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":null,"display_name":"Roberto Casta\u00f1eda Lozano","orcid":"https://orcid.org/0000-0002-2806-7333"},"institutions":[{"id":"https://openalex.org/I86987016","display_name":"KTH Royal Institute of Technology","ror":"https://ror.org/026vcq606","country_code":"SE","type":"education","lineage":["https://openalex.org/I86987016"]}],"countries":["SE"],"is_corresponding":true,"raw_author_name":"Roberto Casta\u00f1eda Lozano","raw_affiliation_strings":["RISE SICS, Sweden and KTH Royal Institute of Technology, Kista, Sweden"],"affiliations":[{"raw_affiliation_string":"RISE SICS, Sweden and KTH Royal Institute of Technology, Kista, Sweden","institution_ids":["https://openalex.org/I86987016"]}]},{"author_position":"last","author":{"id":null,"display_name":"Christian Schulte","orcid":"https://orcid.org/0000-0002-6283-7004"},"institutions":[{"id":"https://openalex.org/I86987016","display_name":"KTH Royal Institute of Technology","ror":"https://ror.org/026vcq606","country_code":"SE","type":"education","lineage":["https://openalex.org/I86987016"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Christian Schulte","raw_affiliation_strings":["KTH Royal Institute of Technology, Sweden and RISE SICS, Kista, Sweden"],"affiliations":[{"raw_affiliation_string":"KTH Royal Institute of Technology, Sweden and RISE SICS, Kista, Sweden","institution_ids":["https://openalex.org/I86987016"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I86987016"],"apc_list":null,"apc_paid":null,"fwci":1.1112,"has_fulltext":false,"cited_by_count":12,"citation_normalized_percentile":{"value":0.79264765,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":"52","issue":"3","first_page":"1","last_page":"50"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11596","display_name":"Constraint Satisfaction and Optimization","score":0.36000001430511475,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/T11596","display_name":"Constraint Satisfaction and Optimization","score":0.36000001430511475,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.2761000096797943,"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.08980000019073486,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/register-allocation","display_name":"Register allocation","score":0.8095999956130981},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7351999878883362},{"id":"https://openalex.org/keywords/scheduling","display_name":"Scheduling (production processes)","score":0.5916000008583069},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.5796999931335449},{"id":"https://openalex.org/keywords/combinatorial-optimization","display_name":"Combinatorial optimization","score":0.5559999942779541},{"id":"https://openalex.org/keywords/combinatorial-explosion","display_name":"Combinatorial explosion","score":0.46140000224113464},{"id":"https://openalex.org/keywords/grasp","display_name":"GRASP","score":0.4348999857902527},{"id":"https://openalex.org/keywords/quadratic-assignment-problem","display_name":"Quadratic assignment problem","score":0.4002000093460083},{"id":"https://openalex.org/keywords/heuristic","display_name":"Heuristic","score":0.37720000743865967}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8862000107765198},{"id":"https://openalex.org/C128916667","wikidata":"https://www.wikidata.org/wiki/Q1343660","display_name":"Register allocation","level":3,"score":0.8095999956130981},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7351999878883362},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.5916000008583069},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.5796999931335449},{"id":"https://openalex.org/C52692508","wikidata":"https://www.wikidata.org/wiki/Q1333872","display_name":"Combinatorial optimization","level":2,"score":0.5559999942779541},{"id":"https://openalex.org/C115908005","wikidata":"https://www.wikidata.org/wiki/Q2668364","display_name":"Combinatorial explosion","level":2,"score":0.46140000224113464},{"id":"https://openalex.org/C171268870","wikidata":"https://www.wikidata.org/wiki/Q1486676","display_name":"GRASP","level":2,"score":0.4348999857902527},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4023999869823456},{"id":"https://openalex.org/C98036226","wikidata":"https://www.wikidata.org/wiki/Q7268356","display_name":"Quadratic assignment problem","level":3,"score":0.4002000093460083},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3880999982357025},{"id":"https://openalex.org/C173801870","wikidata":"https://www.wikidata.org/wiki/Q201413","display_name":"Heuristic","level":2,"score":0.37720000743865967},{"id":"https://openalex.org/C73564150","wikidata":"https://www.wikidata.org/wiki/Q11417093","display_name":"Instruction scheduling","level":5,"score":0.3653999865055084},{"id":"https://openalex.org/C56086750","wikidata":"https://www.wikidata.org/wiki/Q6042592","display_name":"Integer programming","level":2,"score":0.3528999984264374},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.33500000834465027},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.33390000462532043},{"id":"https://openalex.org/C137836250","wikidata":"https://www.wikidata.org/wiki/Q984063","display_name":"Optimization problem","level":2,"score":0.31209999322891235},{"id":"https://openalex.org/C192209626","wikidata":"https://www.wikidata.org/wiki/Q190909","display_name":"Focus (optics)","level":2,"score":0.29899999499320984},{"id":"https://openalex.org/C2984822820","wikidata":"https://www.wikidata.org/wiki/Q1123036","display_name":"Processor scheduling","level":3,"score":0.2953999936580658},{"id":"https://openalex.org/C7342684","wikidata":"https://www.wikidata.org/wiki/Q520777","display_name":"Boolean data type","level":2,"score":0.29330000281333923},{"id":"https://openalex.org/C129844170","wikidata":"https://www.wikidata.org/wiki/Q41299","display_name":"Quadratic equation","level":2,"score":0.2930999994277954},{"id":"https://openalex.org/C127705205","wikidata":"https://www.wikidata.org/wiki/Q5748245","display_name":"Heuristics","level":2,"score":0.2840999960899353},{"id":"https://openalex.org/C203208320","wikidata":"https://www.wikidata.org/wiki/Q5150830","display_name":"Combinatorial search","level":4,"score":0.2822999954223633},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.27090001106262207},{"id":"https://openalex.org/C59919655","wikidata":"https://www.wikidata.org/wiki/Q5150821","display_name":"Combinatorial auction","level":3,"score":0.2655999958515167},{"id":"https://openalex.org/C97137487","wikidata":"https://www.wikidata.org/wiki/Q729138","display_name":"Integer (computer science)","level":2,"score":0.2605000138282776},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.25999999046325684},{"id":"https://openalex.org/C126255220","wikidata":"https://www.wikidata.org/wiki/Q141495","display_name":"Mathematical optimization","level":1,"score":0.25540000200271606},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.25220000743865967},{"id":"https://openalex.org/C6943359","wikidata":"https://www.wikidata.org/wiki/Q875276","display_name":"Boolean satisfiability problem","level":2,"score":0.250900000333786}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3200920","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3200920","pdf_url":null,"source":{"id":"https://openalex.org/S157921468","display_name":"ACM Computing Surveys","issn_l":"0360-0300","issn":["0360-0300","1557-7341"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Computing Surveys","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":92,"referenced_works":["https://openalex.org/W90084074","https://openalex.org/W106298309","https://openalex.org/W1512940807","https://openalex.org/W1519673980","https://openalex.org/W1599239188","https://openalex.org/W1608762713","https://openalex.org/W1777501891","https://openalex.org/W1832782022","https://openalex.org/W1883303451","https://openalex.org/W1965864973","https://openalex.org/W1982205631","https://openalex.org/W1986535055","https://openalex.org/W1987507140","https://openalex.org/W1989931941","https://openalex.org/W1992908040","https://openalex.org/W1996486355","https://openalex.org/W1997230820","https://openalex.org/W1998405926","https://openalex.org/W2005198115","https://openalex.org/W2005664476","https://openalex.org/W2010594747","https://openalex.org/W2013962395","https://openalex.org/W2014406284","https://openalex.org/W2015631949","https://openalex.org/W2016761656","https://openalex.org/W2017069727","https://openalex.org/W2017900342","https://openalex.org/W2025155837","https://openalex.org/W2026213129","https://openalex.org/W2028665553","https://openalex.org/W2034414742","https://openalex.org/W2034491267","https://openalex.org/W2036112575","https://openalex.org/W2039755759","https://openalex.org/W2041530268","https://openalex.org/W2041582885","https://openalex.org/W2041909047","https://openalex.org/W2053505858","https://openalex.org/W2054652902","https://openalex.org/W2059035667","https://openalex.org/W2063255488","https://openalex.org/W2066670963","https://openalex.org/W2069951131","https://openalex.org/W2072298242","https://openalex.org/W2074352684","https://openalex.org/W2088704572","https://openalex.org/W2094304406","https://openalex.org/W2100679533","https://openalex.org/W2100720213","https://openalex.org/W2101028855","https://openalex.org/W2101160335","https://openalex.org/W2101182628","https://openalex.org/W2105860728","https://openalex.org/W2106238482","https://openalex.org/W2108284210","https://openalex.org/W2111130897","https://openalex.org/W2112833506","https://openalex.org/W2119881593","https://openalex.org/W2122230401","https://openalex.org/W2123396057","https://openalex.org/W2124709594","https://openalex.org/W2127126977","https://openalex.org/W2127218465","https://openalex.org/W2129962996","https://openalex.org/W2131065168","https://openalex.org/W2131782980","https://openalex.org/W2134098988","https://openalex.org/W2136693413","https://openalex.org/W2138072945","https://openalex.org/W2140515042","https://openalex.org/W2144481293","https://openalex.org/W2146995753","https://openalex.org/W2153185479","https://openalex.org/W2155316957","https://openalex.org/W2157554674","https://openalex.org/W2161969548","https://openalex.org/W2164363152","https://openalex.org/W2166928920","https://openalex.org/W2167384564","https://openalex.org/W2169631286","https://openalex.org/W2171411106","https://openalex.org/W2278840053","https://openalex.org/W2296760900","https://openalex.org/W3121235808","https://openalex.org/W4211220387","https://openalex.org/W4232919122","https://openalex.org/W4236145149","https://openalex.org/W4239800473","https://openalex.org/W4240046008","https://openalex.org/W4250204977","https://openalex.org/W4255085755","https://openalex.org/W6655643441"],"related_works":[],"abstract_inverted_index":{"Register":[0],"allocation":[1,94],"(mapping":[2],"variables":[3],"to":[4,14,41,57,92],"processor":[5],"registers":[6],"or":[7],"memory)":[8],"and":[9,67,85,95,119,124,133,143],"instruction":[10,96],"scheduling":[11],"(reordering":[12],"instructions":[13],"increase":[15],"instruction-level":[16],"parallelism)":[17],"are":[18,68,105],"essential":[19],"tasks":[20],"for":[21,45],"generating":[22],"efficient":[23],"assembly":[24],"code":[25],"in":[26,108,122,135],"a":[27,58,86,99],"compiler.":[28],"In":[29],"the":[30,72,102,136,145],"past":[31],"three":[32],"decades,":[33],"combinatorial":[34,89,125,150],"optimization":[35,50,90,126],"has":[36],"emerged":[37],"as":[38],"an":[39,81],"alternative":[40],"traditional,":[42],"heuristic":[43],"algorithms":[44],"these":[46],"two":[47],"tasks.":[48],"Combinatorial":[49],"approaches":[51,91],"can":[52,60,127],"deliver":[53],"optimal":[54],"solutions":[55],"according":[56],"model,":[59],"precisely":[61],"capture":[62],"trade-offs":[63],"between":[64],"conflicting":[65],"decisions,":[66],"more":[69],"flexible":[70],"at":[71],"expense":[73],"of":[74,88,148],"increased":[75],"compilation":[76],"time.":[77],"This":[78],"article":[79],"provides":[80],"exhaustive":[82],"literature":[83],"review":[84],"classification":[87],"register":[93],"scheduling,":[97],"with":[98],"focus":[100],"on":[101],"techniques":[103],"that":[104],"most":[106],"applied":[107],"this":[109],"context:":[110],"integer":[111],"programming,":[112,114,118],"constraint":[113],"partitioned":[115],"Boolean":[116],"quadratic":[117],"enumeration.":[120],"Researchers":[121],"compilers":[123],"benefit":[128,147],"from":[129],"identifying":[130],"developments,":[131],"trends,":[132],"challenges":[134],"area;":[137],"compiler":[138],"practitioners":[139],"may":[140],"discern":[141],"opportunities":[142],"grasp":[144],"potential":[146],"applying":[149],"optimization.":[151]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":5},{"year":2021,"cited_by_count":1},{"year":2016,"cited_by_count":1}],"updated_date":"2026-03-07T16:01:11.037858","created_date":"2016-06-24T00:00:00"}
