{"id":"https://openalex.org/W4294845020","doi":"https://doi.org/10.1145/3546189.3549918","title":"Investigating magic numbers: improving the inlining heuristic in the Glasgow Haskell Compiler","display_name":"Investigating magic numbers: improving the inlining heuristic in the Glasgow Haskell Compiler","publication_year":2022,"publication_date":"2022-09-06","ids":{"openalex":"https://openalex.org/W4294845020","doi":"https://doi.org/10.1145/3546189.3549918"},"language":"en","primary_location":{"id":"doi:10.1145/3546189.3549918","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3546189.3549918","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 15th ACM SIGPLAN International Haskell Symposium","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/A5062694729","display_name":"Celeste Hollenbeck","orcid":"https://orcid.org/0000-0002-2922-5954"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Celeste Hollenbeck","raw_affiliation_strings":["University of Edinburgh, UK"],"affiliations":[{"raw_affiliation_string":"University of Edinburgh, UK","institution_ids":["https://openalex.org/I98677209"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5027001025","display_name":"Michael O\u2019Boyle","orcid":"https://orcid.org/0000-0003-1619-5052"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Michael F. P. O'Boyle","raw_affiliation_strings":["University of Edinburgh, UK"],"affiliations":[{"raw_affiliation_string":"University of Edinburgh, UK","institution_ids":["https://openalex.org/I98677209"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5016319844","display_name":"Michel Steuwer","orcid":"https://orcid.org/0000-0001-5048-0741"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Michel Steuwer","raw_affiliation_strings":["University of Edinburgh, UK"],"affiliations":[{"raw_affiliation_string":"University of Edinburgh, UK","institution_ids":["https://openalex.org/I98677209"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5062694729"],"corresponding_institution_ids":["https://openalex.org/I98677209"],"apc_list":null,"apc_paid":null,"fwci":0.9085,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.71947133,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"81","last_page":"94"},"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.9997000098228455,"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.9997000098228455,"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.9995999932289124,"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/T10142","display_name":"Formal Methods in Verification","score":0.9955000281333923,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/haskell","display_name":"Haskell","score":0.9404642581939697},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8503187894821167},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.8360201120376587},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7188656330108643},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.5329495668411255},{"id":"https://openalex.org/keywords/interprocedural-optimization","display_name":"Interprocedural optimization","score":0.46614208817481995},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.34843987226486206},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.3271586000919342},{"id":"https://openalex.org/keywords/loop-optimization","display_name":"Loop optimization","score":0.2745530605316162}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.9404642581939697},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8503187894821167},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.8360201120376587},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7188656330108643},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.5329495668411255},{"id":"https://openalex.org/C111564260","wikidata":"https://www.wikidata.org/wiki/Q4288856","display_name":"Interprocedural optimization","level":5,"score":0.46614208817481995},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.34843987226486206},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3271586000919342},{"id":"https://openalex.org/C29331672","wikidata":"https://www.wikidata.org/wiki/Q3354468","display_name":"Loop optimization","level":4,"score":0.2745530605316162}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3546189.3549918","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3546189.3549918","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 15th ACM SIGPLAN International Haskell Symposium","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":33,"referenced_works":["https://openalex.org/W142258998","https://openalex.org/W2030814361","https://openalex.org/W2037407383","https://openalex.org/W2051761662","https://openalex.org/W2093708648","https://openalex.org/W2100218206","https://openalex.org/W2100933152","https://openalex.org/W2104283600","https://openalex.org/W2106296728","https://openalex.org/W2119365588","https://openalex.org/W2130363716","https://openalex.org/W2133128124","https://openalex.org/W2133414903","https://openalex.org/W2143124065","https://openalex.org/W2150650310","https://openalex.org/W2157087583","https://openalex.org/W2166091242","https://openalex.org/W2168519934","https://openalex.org/W2747830075","https://openalex.org/W2783614532","https://openalex.org/W2915453116","https://openalex.org/W2962724414","https://openalex.org/W2980791959","https://openalex.org/W3015456328","https://openalex.org/W3082811184","https://openalex.org/W3122749996","https://openalex.org/W3163661296","https://openalex.org/W3197831489","https://openalex.org/W3202359813","https://openalex.org/W4206504442","https://openalex.org/W4214583996","https://openalex.org/W4242126179","https://openalex.org/W4247316974"],"related_works":["https://openalex.org/W4246454774","https://openalex.org/W2083681681","https://openalex.org/W2091689272","https://openalex.org/W2053033210","https://openalex.org/W4220800565","https://openalex.org/W1488300410","https://openalex.org/W1496844168","https://openalex.org/W1597127505","https://openalex.org/W2002505081","https://openalex.org/W2535844943"],"abstract_inverted_index":{"Inlining":[0],"is":[1,8,25],"a":[2,26],"widely":[3],"studied":[4],"compiler":[5],"optimization":[6],"that":[7,32],"particularly":[9],"important":[10],"for":[11,38],"functional":[12],"languages":[13],"such":[14,29],"as":[15],"Haskell":[16,21],"and":[17],"OCaml.":[18],"The":[19],"Glasgow":[20],"Compiler":[22],"(GHC)":[23],"inliner":[24],"heuristic":[27],"of":[28,66],"complexity,":[30],"however,":[31],"it":[33],"has":[34,60],"not":[35],"significantly":[36],"changed":[37],"nearly":[39],"20":[40],"years.":[41],"It":[42],"heavily":[43],"relies":[44],"on":[45,53],"hard-coded":[46],"numeric":[47],"constants,":[48],"or":[49],"magic":[50],"numbers,":[51],"based":[52],"out-of-date":[54],"intuition.":[55],"Dissatisfaction":[56],"with":[57],"inlining":[58,67],"performance":[59],"led":[61],"to":[62],"the":[63],"widespread":[64],"use":[65],"pragmas":[68],"by":[69],"programmers.":[70]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
