{"id":"https://openalex.org/W2106840980","doi":"https://doi.org/10.1145/2451116.2451161","title":"Practical automatic loop specialization","display_name":"Practical automatic loop specialization","publication_year":2013,"publication_date":"2013-03-16","ids":{"openalex":"https://openalex.org/W2106840980","doi":"https://doi.org/10.1145/2451116.2451161","mag":"2106840980"},"language":"en","primary_location":{"id":"doi:10.1145/2451116.2451161","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2451116.2451161","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eighteenth international conference on Architectural support for programming languages and operating 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/A5113606301","display_name":"Taewook Oh","orcid":null},"institutions":[{"id":"https://openalex.org/I20089843","display_name":"Princeton University","ror":"https://ror.org/00hx57361","country_code":"US","type":"education","lineage":["https://openalex.org/I20089843"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Taewook Oh","raw_affiliation_strings":["Princeton University, Princeton, NJ, USA","Princeton University , Princeton, NJ, USA"],"affiliations":[{"raw_affiliation_string":"Princeton University, Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]},{"raw_affiliation_string":"Princeton University , Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5100722345","display_name":"Hanjun Kim","orcid":"https://orcid.org/0000-0002-0762-7901"},"institutions":[{"id":"https://openalex.org/I20089843","display_name":"Princeton University","ror":"https://ror.org/00hx57361","country_code":"US","type":"education","lineage":["https://openalex.org/I20089843"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Hanjun Kim","raw_affiliation_strings":["Princeton University, Princeton, NJ, USA","Princeton University , Princeton, NJ, USA"],"affiliations":[{"raw_affiliation_string":"Princeton University, Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]},{"raw_affiliation_string":"Princeton University , Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5110187017","display_name":"Nick Johnson","orcid":null},"institutions":[{"id":"https://openalex.org/I20089843","display_name":"Princeton University","ror":"https://ror.org/00hx57361","country_code":"US","type":"education","lineage":["https://openalex.org/I20089843"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Nick P. Johnson","raw_affiliation_strings":["Princeton University, Princeton, NJ, USA","Princeton University , Princeton, NJ, USA"],"affiliations":[{"raw_affiliation_string":"Princeton University, Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]},{"raw_affiliation_string":"Princeton University , Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5100415738","display_name":"Jae Wook Lee","orcid":"https://orcid.org/0000-0002-8756-0195"},"institutions":[{"id":"https://openalex.org/I848706","display_name":"Sungkyunkwan University","ror":"https://ror.org/04q78tk20","country_code":"KR","type":"education","lineage":["https://openalex.org/I848706"]}],"countries":["KR"],"is_corresponding":false,"raw_author_name":"Jae W. Lee","raw_affiliation_strings":["Sungkyunkwan University, Suwon, South Korea"],"affiliations":[{"raw_affiliation_string":"Sungkyunkwan University, Suwon, South Korea","institution_ids":["https://openalex.org/I848706"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5008319090","display_name":"David I. August","orcid":"https://orcid.org/0000-0003-3327-1803"},"institutions":[{"id":"https://openalex.org/I20089843","display_name":"Princeton University","ror":"https://ror.org/00hx57361","country_code":"US","type":"education","lineage":["https://openalex.org/I20089843"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"David I. August","raw_affiliation_strings":["Princeton University, Princeton, NJ, USA","Princeton University , Princeton, NJ, USA"],"affiliations":[{"raw_affiliation_string":"Princeton University, Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]},{"raw_affiliation_string":"Princeton University , Princeton, NJ, USA","institution_ids":["https://openalex.org/I20089843"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5113606301"],"corresponding_institution_ids":["https://openalex.org/I20089843"],"apc_list":null,"apc_paid":null,"fwci":2.22,"has_fulltext":false,"cited_by_count":25,"citation_normalized_percentile":{"value":0.88261132,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"419","last_page":"430"},"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.9998999834060669,"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.9998999834060669,"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.9977999925613403,"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/speedup","display_name":"Speedup","score":0.8622753024101257},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7944821715354919},{"id":"https://openalex.org/keywords/scripting-language","display_name":"Scripting language","score":0.6506025195121765},{"id":"https://openalex.org/keywords/loop","display_name":"Loop (graph theory)","score":0.5840691328048706},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.5495603680610657},{"id":"https://openalex.org/keywords/invariant","display_name":"Invariant (physics)","score":0.5472367405891418},{"id":"https://openalex.org/keywords/binary-number","display_name":"Binary number","score":0.5426434278488159},{"id":"https://openalex.org/keywords/loop-optimization","display_name":"Loop optimization","score":0.4622151255607605},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.36492717266082764},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.36182600259780884},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.3540704846382141},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.331768274307251},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.3120243549346924},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.27236783504486084},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.1019662618637085}],"concepts":[{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.8622753024101257},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7944821715354919},{"id":"https://openalex.org/C61423126","wikidata":"https://www.wikidata.org/wiki/Q187432","display_name":"Scripting language","level":2,"score":0.6506025195121765},{"id":"https://openalex.org/C184670325","wikidata":"https://www.wikidata.org/wiki/Q512604","display_name":"Loop (graph theory)","level":2,"score":0.5840691328048706},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.5495603680610657},{"id":"https://openalex.org/C190470478","wikidata":"https://www.wikidata.org/wiki/Q2370229","display_name":"Invariant (physics)","level":2,"score":0.5472367405891418},{"id":"https://openalex.org/C48372109","wikidata":"https://www.wikidata.org/wiki/Q3913","display_name":"Binary number","level":2,"score":0.5426434278488159},{"id":"https://openalex.org/C29331672","wikidata":"https://www.wikidata.org/wiki/Q3354468","display_name":"Loop optimization","level":4,"score":0.4622151255607605},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.36492717266082764},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.36182600259780884},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3540704846382141},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.331768274307251},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.3120243549346924},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.27236783504486084},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.1019662618637085},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C94375191","wikidata":"https://www.wikidata.org/wiki/Q11205","display_name":"Arithmetic","level":1,"score":0.0},{"id":"https://openalex.org/C37914503","wikidata":"https://www.wikidata.org/wiki/Q156495","display_name":"Mathematical physics","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2451116.2451161","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2451116.2451161","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.296.8122","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.296.8122","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://liberty.princeton.edu/Publications/asplos13_ipls.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":30,"referenced_works":["https://openalex.org/W1494930385","https://openalex.org/W1596463817","https://openalex.org/W1797198873","https://openalex.org/W1810396090","https://openalex.org/W1986991427","https://openalex.org/W1987632834","https://openalex.org/W1991751536","https://openalex.org/W1993335798","https://openalex.org/W2002181967","https://openalex.org/W2005685982","https://openalex.org/W2019571395","https://openalex.org/W2021951417","https://openalex.org/W2031165841","https://openalex.org/W2070047551","https://openalex.org/W2072737419","https://openalex.org/W2095594146","https://openalex.org/W2100666033","https://openalex.org/W2110403837","https://openalex.org/W2116136092","https://openalex.org/W2116981323","https://openalex.org/W2121048547","https://openalex.org/W2149237601","https://openalex.org/W2149982801","https://openalex.org/W2153185479","https://openalex.org/W2914237411","https://openalex.org/W2914510631","https://openalex.org/W4205241946","https://openalex.org/W4231002400","https://openalex.org/W4241381711","https://openalex.org/W4256238177"],"related_works":["https://openalex.org/W1665033356","https://openalex.org/W1877657449","https://openalex.org/W2083681681","https://openalex.org/W2136540650","https://openalex.org/W1597127505","https://openalex.org/W2091689272","https://openalex.org/W2169282672","https://openalex.org/W4239383549","https://openalex.org/W2411334977","https://openalex.org/W2778498407"],"abstract_inverted_index":{"Program":[0],"specialization":[1,64],"optimizes":[2],"a":[3,29,110,158,164],"program":[4,8,30],"with":[5,163],"respect":[6],"to":[7,19,106,148],"invariants,":[9],"including":[10],"known,":[11],"fixed":[12],"inputs.":[13],"These":[14],"invariants":[15,87],"can":[16],"be":[17],"used":[18],"enable":[20],"optimizations":[21],"that":[22,83,144],"are":[23],"otherwise":[24],"unsound.":[25],"In":[26],"many":[27],"applications,":[28],"input":[31,132],"induces":[32],"predictable":[33],"patterns":[34,91,105,128],"of":[35,81,95,113,120,161,167],"values":[36,80,108],"across":[37,92,109],"loop":[38,114],"iterations,":[39],"yet":[40],"existing":[41],"specializers":[42],"cannot":[43],"fully":[44],"capitalize":[45],"on":[46,70,86,175],"this":[47,51,124],"opportunity.":[48],"To":[49],"address":[50],"limitation,":[52],"we":[53],"present":[54],"Invariant-induced":[55],"Pattern":[56],"based":[57],"Loop":[58],"Specialization":[59],"(IPLS),":[60],"the":[61,79,121,131,137,154,170],"first":[62],"fully-automatic":[63],"technique":[65],"designed":[66],"for":[67],"everyday":[68],"use":[69],"real":[71],"applications.":[72],"Using":[73],"dynamic":[74],"information-flow":[75],"tracking,":[76],"IPLS":[77,98,140],"profiles":[78],"instructions":[82],"depend":[84],"solely":[85],"and":[88,179],"recognizes":[89],"repeating":[90],"multiple":[93],"iterations":[94],"hot":[96],"loops.":[97],"then":[99],"specializes":[100,141],"these":[101],"loops,":[102],"using":[103],"those":[104],"predict":[107],"large":[111],"window":[112],"iterations.":[115],"This":[116],"enables":[117],"aggressive":[118],"optimization":[119,125],"loop;":[122],"conceptually,":[123],"reconstructs":[126],"recurring":[127],"induced":[129],"by":[130],"as":[133],"concrete":[134],"loops":[135],"in":[136],"specialized":[138],"binary.":[139],"real-world":[142],"programs":[143],"prior":[145],"techniques":[146],"fail":[147],"specialize":[149],"without":[150],"requiring":[151],"hints":[152],"from":[153],"user.":[155],"Experiments":[156],"demonstrate":[157],"geomean":[159],"speedup":[160,166],"14.1%":[162],"maximum":[165],"138%":[168],"over":[169],"original":[171],"codes":[172],"when":[173],"evaluated":[174],"three":[176],"script":[177],"interpreters":[178],"eleven":[180],"scripts":[181],"each.":[182]},"counts_by_year":[{"year":2021,"cited_by_count":4},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":9},{"year":2016,"cited_by_count":4},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
