{"id":"https://openalex.org/W2516217148","doi":"https://doi.org/10.1145/2972206.2972211","title":"Trace-based Register Allocation in a JIT Compiler","display_name":"Trace-based Register Allocation in a JIT Compiler","publication_year":2016,"publication_date":"2016-08-15","ids":{"openalex":"https://openalex.org/W2516217148","doi":"https://doi.org/10.1145/2972206.2972211","mag":"2516217148"},"language":"en","primary_location":{"id":"doi:10.1145/2972206.2972211","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2972206.2972211","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools","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/A5061471127","display_name":"Josef Eisl","orcid":null},"institutions":[{"id":"https://openalex.org/I121883995","display_name":"Johannes Kepler University of Linz","ror":"https://ror.org/052r2xn60","country_code":"AT","type":"education","lineage":["https://openalex.org/I121883995"]}],"countries":["AT"],"is_corresponding":true,"raw_author_name":"Josef Eisl","raw_affiliation_strings":["Institute for System Software, Johannes Kepler University, Linz, Austria"],"affiliations":[{"raw_affiliation_string":"Institute for System Software, Johannes Kepler University, Linz, Austria","institution_ids":["https://openalex.org/I121883995"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5057146872","display_name":"Matthias Grimmer","orcid":"https://orcid.org/0000-0003-4295-1579"},"institutions":[{"id":"https://openalex.org/I121883995","display_name":"Johannes Kepler University of Linz","ror":"https://ror.org/052r2xn60","country_code":"AT","type":"education","lineage":["https://openalex.org/I121883995"]}],"countries":["AT"],"is_corresponding":false,"raw_author_name":"Matthias Grimmer","raw_affiliation_strings":["Institute for System Software, Johannes Kepler University, Linz, Austria"],"affiliations":[{"raw_affiliation_string":"Institute for System Software, Johannes Kepler University, Linz, Austria","institution_ids":["https://openalex.org/I121883995"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5063810973","display_name":"Doug Simon","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Doug Simon","raw_affiliation_strings":["Oracle Labs, Switzerland"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, Switzerland","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5078436726","display_name":"Thomas W\u00fcrthinger","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Thomas W\u00fcrthinger","raw_affiliation_strings":["Oracle Labs, Switzerland"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, Switzerland","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5011678778","display_name":"Hanspeter M\u00f6ssenb\u00f6ck","orcid":"https://orcid.org/0000-0001-7706-7308"},"institutions":[{"id":"https://openalex.org/I121883995","display_name":"Johannes Kepler University of Linz","ror":"https://ror.org/052r2xn60","country_code":"AT","type":"education","lineage":["https://openalex.org/I121883995"]}],"countries":["AT"],"is_corresponding":false,"raw_author_name":"Hanspeter M\u00f6ssenb\u00f6ck","raw_affiliation_strings":["Institute for System Software, Johannes Kepler University, Linz, Austria"],"affiliations":[{"raw_affiliation_string":"Institute for System Software, Johannes Kepler University, Linz, Austria","institution_ids":["https://openalex.org/I121883995"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5061471127"],"corresponding_institution_ids":["https://openalex.org/I121883995"],"apc_list":null,"apc_paid":null,"fwci":2.2073,"has_fulltext":false,"cited_by_count":11,"citation_normalized_percentile":{"value":0.87257852,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"11"},"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.9995999932289124,"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.9995999932289124,"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/T10126","display_name":"Logic, programming, and type systems","score":0.998199999332428,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9937000274658203,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.9763058423995972},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8502200841903687},{"id":"https://openalex.org/keywords/allocator","display_name":"Allocator","score":0.8294960260391235},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6764890551567078},{"id":"https://openalex.org/keywords/trace","display_name":"TRACE (psycholinguistics)","score":0.6528154611587524},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.5753107666969299},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.5467965006828308},{"id":"https://openalex.org/keywords/processor-register","display_name":"Processor register","score":0.5308557152748108},{"id":"https://openalex.org/keywords/dynamic-compilation","display_name":"Dynamic compilation","score":0.46179699897766113},{"id":"https://openalex.org/keywords/call-graph","display_name":"Call graph","score":0.41639289259910583},{"id":"https://openalex.org/keywords/profiling","display_name":"Profiling (computer programming)","score":0.4148631989955902},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.26737135648727417},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.2512347102165222},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.13756436109542847}],"concepts":[{"id":"https://openalex.org/C128916667","wikidata":"https://www.wikidata.org/wiki/Q1343660","display_name":"Register allocation","level":3,"score":0.9763058423995972},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8502200841903687},{"id":"https://openalex.org/C162262903","wikidata":"https://www.wikidata.org/wiki/Q343527","display_name":"Allocator","level":2,"score":0.8294960260391235},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6764890551567078},{"id":"https://openalex.org/C75291252","wikidata":"https://www.wikidata.org/wiki/Q1315756","display_name":"TRACE (psycholinguistics)","level":2,"score":0.6528154611587524},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.5753107666969299},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5467965006828308},{"id":"https://openalex.org/C2871975","wikidata":"https://www.wikidata.org/wiki/Q187466","display_name":"Processor register","level":4,"score":0.5308557152748108},{"id":"https://openalex.org/C8767382","wikidata":"https://www.wikidata.org/wiki/Q1058454","display_name":"Dynamic compilation","level":3,"score":0.46179699897766113},{"id":"https://openalex.org/C102379954","wikidata":"https://www.wikidata.org/wiki/Q2589940","display_name":"Call graph","level":2,"score":0.41639289259910583},{"id":"https://openalex.org/C187191949","wikidata":"https://www.wikidata.org/wiki/Q1138496","display_name":"Profiling (computer programming)","level":2,"score":0.4148631989955902},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.26737135648727417},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.2512347102165222},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.13756436109542847},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.0},{"id":"https://openalex.org/C153247305","wikidata":"https://www.wikidata.org/wiki/Q835713","display_name":"Memory address","level":3,"score":0.0},{"id":"https://openalex.org/C98986596","wikidata":"https://www.wikidata.org/wiki/Q1143031","display_name":"Semiconductor memory","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2972206.2972211","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2972206.2972211","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools","raw_type":"proceedings-article"},{"id":"pmh:oai:epub.jku.at/:2470657","is_oa":false,"landing_page_url":"http://resolver.obvsg.at/urn:nbn:at:at-ubl:3-203","pdf_url":null,"source":{"id":"https://openalex.org/S4306401788","display_name":"University Library Linz repository (Johannes Kepler Universitat Linz)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I121883995","host_organization_name":"Johannes Kepler University of Linz","host_organization_lineage":["https://openalex.org/I121883995"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":52,"referenced_works":["https://openalex.org/W58680384","https://openalex.org/W829852895","https://openalex.org/W1564285798","https://openalex.org/W1603773328","https://openalex.org/W1876846146","https://openalex.org/W1979984064","https://openalex.org/W1982205631","https://openalex.org/W1993335798","https://openalex.org/W2002859943","https://openalex.org/W2003804316","https://openalex.org/W2007920703","https://openalex.org/W2010295655","https://openalex.org/W2018790814","https://openalex.org/W2023274008","https://openalex.org/W2037565762","https://openalex.org/W2044636417","https://openalex.org/W2057651724","https://openalex.org/W2063255488","https://openalex.org/W2066382851","https://openalex.org/W2070566991","https://openalex.org/W2072737419","https://openalex.org/W2075675735","https://openalex.org/W2077934095","https://openalex.org/W2084451631","https://openalex.org/W2100139716","https://openalex.org/W2101182628","https://openalex.org/W2113578526","https://openalex.org/W2116136092","https://openalex.org/W2129962996","https://openalex.org/W2130262734","https://openalex.org/W2140191557","https://openalex.org/W2141582038","https://openalex.org/W2149914527","https://openalex.org/W2153185479","https://openalex.org/W2160756430","https://openalex.org/W2164296674","https://openalex.org/W2164363152","https://openalex.org/W2166091242","https://openalex.org/W2186102677","https://openalex.org/W2197714735","https://openalex.org/W2319794630","https://openalex.org/W2561675875","https://openalex.org/W2997431557","https://openalex.org/W2998283004","https://openalex.org/W3007762642","https://openalex.org/W4232576303","https://openalex.org/W4234378260","https://openalex.org/W4236519034","https://openalex.org/W4245776562","https://openalex.org/W4250204977","https://openalex.org/W6672261180","https://openalex.org/W6695707444"],"related_works":["https://openalex.org/W2435692892","https://openalex.org/W2097395075","https://openalex.org/W2125778082","https://openalex.org/W1495962746","https://openalex.org/W2158718504","https://openalex.org/W4243308008","https://openalex.org/W2516217148","https://openalex.org/W4241029635","https://openalex.org/W2922037604","https://openalex.org/W2040788439"],"abstract_inverted_index":{"State-of-the-art":[0],"dynamic":[1],"compilers":[2],"often":[3],"use":[4],"global":[5,115],"approaches,":[6],"like":[7],"Linear":[8,38],"Scan":[9],"or":[10],"Graph":[11],"Coloring,":[12],"for":[13,23,34],"register":[14,66,88,98,116],"allocation.":[15,117],"These":[16],"algorithms":[17,100],"consider":[18],"the":[19,27,30,74,85],"complete":[20],"compilation":[21,44,55],"unit":[22,56],"allocation,":[24],"which":[25,52,83],"increases":[26],"complexity":[28],"of":[29],"implementation":[31],"(e.g.,":[32],"support":[33],"lifetime":[35],"holes":[36],"in":[37],"Scan)":[39],"and":[40,63],"potentially":[41],"also":[42],"affects":[43],"time.":[45],"We":[46,104],"propose":[47],"a":[48,54,78,87],"novel":[49],"non-global":[50,108],"algorithm,":[51],"splits":[53],"into":[57],"traces":[58],"based":[59],"on":[60],"profiling":[61],"feedback":[62],"subsequently":[64],"performs":[65],"allocation":[67,99],"within":[68],"each":[69,102],"trace":[70],"individually.":[71],"Traces":[72],"reduce":[73],"problem":[75,86],"size":[76],"to":[77,91,101,114],"single":[79],"linear":[80],"code":[81],"segment,":[82],"simplifies":[84],"allocator":[89],"needs":[90],"solve.":[92],"Additionally,":[93],"we":[94],"can":[95,110],"apply":[96],"different":[97],"trace.":[103],"show":[105],"that":[106],"this":[107],"approach":[109],"achieve":[111],"results":[112],"competitive":[113]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":4},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
