{"id":"https://openalex.org/W4396214531","doi":"https://doi.org/10.1145/3649837","title":"Hydra: Generalizing Peephole Optimizations with Program Synthesis","display_name":"Hydra: Generalizing Peephole Optimizations with Program Synthesis","publication_year":2024,"publication_date":"2024-04-29","ids":{"openalex":"https://openalex.org/W4396214531","doi":"https://doi.org/10.1145/3649837"},"language":"en","primary_location":{"id":"doi:10.1145/3649837","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3649837","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3649837","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5017201533","display_name":"Manasij Mukherjee","orcid":"https://orcid.org/0009-0007-8460-6745"},"institutions":[{"id":"https://openalex.org/I223532165","display_name":"University of Utah","ror":"https://ror.org/03r0ha626","country_code":"US","type":"education","lineage":["https://openalex.org/I223532165"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Manasij Mukherjee","raw_affiliation_strings":["University of Utah, Salt Lake City, USA"],"raw_orcid":"https://orcid.org/0009-0007-8460-6745","affiliations":[{"raw_affiliation_string":"University of Utah, Salt Lake City, USA","institution_ids":["https://openalex.org/I223532165"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5066046345","display_name":"John Regehr","orcid":"https://orcid.org/0000-0001-7025-4610"},"institutions":[{"id":"https://openalex.org/I223532165","display_name":"University of Utah","ror":"https://ror.org/03r0ha626","country_code":"US","type":"education","lineage":["https://openalex.org/I223532165"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"John Regehr","raw_affiliation_strings":["University of Utah, Salt Lake City, USA"],"raw_orcid":"https://orcid.org/0000-0001-7025-4610","affiliations":[{"raw_affiliation_string":"University of Utah, Salt Lake City, USA","institution_ids":["https://openalex.org/I223532165"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I223532165"],"apc_list":null,"apc_paid":null,"fwci":1.9664,"has_fulltext":false,"cited_by_count":10,"citation_normalized_percentile":{"value":0.83678135,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":98,"max":99},"biblio":{"volume":"8","issue":"OOPSLA1","first_page":"725","last_page":"753"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11801","display_name":"Reservoir Engineering and Simulation Methods","score":0.9760000109672546,"subfield":{"id":"https://openalex.org/subfields/2212","display_name":"Ocean Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11801","display_name":"Reservoir Engineering and Simulation Methods","score":0.9760000109672546,"subfield":{"id":"https://openalex.org/subfields/2212","display_name":"Ocean Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T13050","display_name":"Oil and Gas Production Techniques","score":0.9732000231742859,"subfield":{"id":"https://openalex.org/subfields/2212","display_name":"Ocean Engineering"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10635","display_name":"Hydraulic Fracturing and Reservoir Analysis","score":0.9491000175476074,"subfield":{"id":"https://openalex.org/subfields/2210","display_name":"Mechanical 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/lernaean-hydra","display_name":"Lernaean Hydra","score":0.7894515991210938},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6207736134529114},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.46095138788223267},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.41998663544654846},{"id":"https://openalex.org/keywords/biology","display_name":"Biology","score":0.160672128200531},{"id":"https://openalex.org/keywords/cell-biology","display_name":"Cell biology","score":0.08297565579414368}],"concepts":[{"id":"https://openalex.org/C34781881","wikidata":"https://www.wikidata.org/wiki/Q170379","display_name":"Lernaean Hydra","level":2,"score":0.7894515991210938},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6207736134529114},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.46095138788223267},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.41998663544654846},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.160672128200531},{"id":"https://openalex.org/C95444343","wikidata":"https://www.wikidata.org/wiki/Q7141","display_name":"Cell biology","level":1,"score":0.08297565579414368}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3649837","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3649837","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3649837","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3649837","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":39,"referenced_works":["https://openalex.org/W258469679","https://openalex.org/W1507894341","https://openalex.org/W1605468179","https://openalex.org/W1996892501","https://openalex.org/W1997456729","https://openalex.org/W2003164052","https://openalex.org/W2094878426","https://openalex.org/W2098456636","https://openalex.org/W2101723202","https://openalex.org/W2119664062","https://openalex.org/W2150871888","https://openalex.org/W2152397470","https://openalex.org/W2246217019","https://openalex.org/W2294286398","https://openalex.org/W2294628582","https://openalex.org/W2330908417","https://openalex.org/W2340812064","https://openalex.org/W2416392025","https://openalex.org/W2493672872","https://openalex.org/W2533429627","https://openalex.org/W2603456259","https://openalex.org/W2740130372","https://openalex.org/W2798628553","https://openalex.org/W2899590559","https://openalex.org/W2962809971","https://openalex.org/W2995341674","https://openalex.org/W2998011150","https://openalex.org/W3000410628","https://openalex.org/W3006102157","https://openalex.org/W3006937969","https://openalex.org/W3024487921","https://openalex.org/W3109233608","https://openalex.org/W3123182306","https://openalex.org/W3157256658","https://openalex.org/W3164004581","https://openalex.org/W4205914269","https://openalex.org/W4234084457","https://openalex.org/W4237412827","https://openalex.org/W4315605888"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2748952813","https://openalex.org/W2128040437","https://openalex.org/W2008467200","https://openalex.org/W2381253015","https://openalex.org/W2093732113","https://openalex.org/W2141305934","https://openalex.org/W1859893720","https://openalex.org/W2268219566","https://openalex.org/W2089100900"],"abstract_inverted_index":{"Optimizing":[0],"compilers":[1],"rely":[2],"on":[3,81],"peephole":[4,18,73,125,142],"optimizations":[5,74,126,143],"to":[6,132],"simplify":[7],"combinations":[8],"of":[9,31,57,71,78,85,97,103,106,121,139],"instructions":[10,33],"and":[11,148],"remove":[12],"redundant":[13],"instructions.":[14,58],"Typically,":[15],"a":[16,23,40,65,76,95],"new":[17],"optimization":[19,28,99],"is":[20,93,101,159],"added":[21],"when":[22],"compiler":[24],"developer":[25],"notices":[26],"an":[27,164],"opportunity---a":[29],"collection":[30,77],"dependent":[32],"that":[34,45,67,100,116,127,158],"can":[35,118,151],"be":[36],"improved---and":[37],"manually":[38],"derives":[39],"more":[41],"general":[42],"rewrite":[43],"rule":[44],"optimizes":[46],"not":[47],"only":[48],"the":[49,69,86,104,107,122,133],"original":[50],"code,":[51],"but":[52],"also":[53],"other,":[54],"similar":[55],"collections":[56],"In":[59],"this":[60,111],"paper,":[61],"we":[62,90,150],"present":[63],"Hydra,":[64],"tool":[66],"automates":[68],"process":[70],"generalizing":[72],"using":[75],"techniques":[79],"centered":[80],"program":[82],"synthesis.":[83],"One":[84],"most":[87],"important":[88],"problems":[89],"have":[91,130,144],"solved":[92],"finding":[94],"version":[96,112],"each":[98],"independent":[102],"bitwidths":[105],"optimization's":[108],"inputs":[109],"(when":[110],"exists).":[113],"We":[114],"show":[115],"Hydra":[117],"generalize":[119],"75%":[120],"ungeneralized":[123],"missed":[124],"LLVM":[128,134,165],"developers":[129],"posted":[131],"project's":[135],"issue":[136],"tracker.":[137],"All":[138],"Hydra's":[140],"generalized":[141],"been":[145],"formally":[146],"verified,":[147],"furthermore":[149],"automatically":[152],"turn":[153],"them":[154],"into":[155],"C++":[156],"code":[157],"suitable":[160],"for":[161],"inclusion":[162],"in":[163],"pass.":[166]},"counts_by_year":[{"year":2026,"cited_by_count":5},{"year":2025,"cited_by_count":5}],"updated_date":"2026-08-18T07:49:30.821534","created_date":"2025-10-10T00:00:00"}
