{"id":"https://openalex.org/W2798404616","doi":"https://doi.org/10.1145/3192366.3192413","title":"Partial control-flow linearization","display_name":"Partial control-flow linearization","publication_year":2018,"publication_date":"2018-06-11","ids":{"openalex":"https://openalex.org/W2798404616","doi":"https://doi.org/10.1145/3192366.3192413","mag":"2798404616"},"language":"en","primary_location":{"id":"doi:10.1145/3192366.3192413","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3192366.3192413","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation","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/A5061644724","display_name":"Simon Moll","orcid":null},"institutions":[{"id":"https://openalex.org/I91712215","display_name":"Saarland University","ror":"https://ror.org/01jdpyv68","country_code":"DE","type":"education","lineage":["https://openalex.org/I91712215"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Simon Moll","raw_affiliation_strings":["Saarland University, Germany"],"affiliations":[{"raw_affiliation_string":"Saarland University, Germany","institution_ids":["https://openalex.org/I91712215"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5018809145","display_name":"Sebastian Hack","orcid":"https://orcid.org/0000-0002-3387-2134"},"institutions":[{"id":"https://openalex.org/I91712215","display_name":"Saarland University","ror":"https://ror.org/01jdpyv68","country_code":"DE","type":"education","lineage":["https://openalex.org/I91712215"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Sebastian Hack","raw_affiliation_strings":["Saarland University, Germany"],"affiliations":[{"raw_affiliation_string":"Saarland University, Germany","institution_ids":["https://openalex.org/I91712215"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5061644724"],"corresponding_institution_ids":["https://openalex.org/I91712215"],"apc_list":null,"apc_paid":null,"fwci":4.8792,"has_fulltext":false,"cited_by_count":27,"citation_normalized_percentile":{"value":0.9568933,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"543","last_page":"556"},"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/T11181","display_name":"Advanced Data Storage Technologies","score":0.9994000196456909,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9968000054359436,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/simd","display_name":"SIMD","score":0.8988080024719238},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8513447046279907},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.7980177402496338},{"id":"https://openalex.org/keywords/benchmark","display_name":"Benchmark (surveying)","score":0.7089143991470337},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.6828489303588867},{"id":"https://openalex.org/keywords/linearization","display_name":"Linearization","score":0.6036854386329651},{"id":"https://openalex.org/keywords/vectorization","display_name":"Vectorization (mathematics)","score":0.5354663729667664},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.44750556349754333},{"id":"https://openalex.org/keywords/kernel","display_name":"Kernel (algebra)","score":0.44133228063583374},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.42305833101272583},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.1483611762523651},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.07849070429801941}],"concepts":[{"id":"https://openalex.org/C150552126","wikidata":"https://www.wikidata.org/wiki/Q339387","display_name":"SIMD","level":2,"score":0.8988080024719238},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8513447046279907},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.7980177402496338},{"id":"https://openalex.org/C185798385","wikidata":"https://www.wikidata.org/wiki/Q1161707","display_name":"Benchmark (surveying)","level":2,"score":0.7089143991470337},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.6828489303588867},{"id":"https://openalex.org/C11210021","wikidata":"https://www.wikidata.org/wiki/Q1520713","display_name":"Linearization","level":3,"score":0.6036854386329651},{"id":"https://openalex.org/C41681595","wikidata":"https://www.wikidata.org/wiki/Q7917855","display_name":"Vectorization (mathematics)","level":2,"score":0.5354663729667664},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.44750556349754333},{"id":"https://openalex.org/C74193536","wikidata":"https://www.wikidata.org/wiki/Q574844","display_name":"Kernel (algebra)","level":2,"score":0.44133228063583374},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.42305833101272583},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.1483611762523651},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.07849070429801941},{"id":"https://openalex.org/C13280743","wikidata":"https://www.wikidata.org/wiki/Q131089","display_name":"Geodesy","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C158622935","wikidata":"https://www.wikidata.org/wiki/Q660848","display_name":"Nonlinear system","level":2,"score":0.0},{"id":"https://openalex.org/C205649164","wikidata":"https://www.wikidata.org/wiki/Q1071","display_name":"Geography","level":0,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3192366.3192413","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3192366.3192413","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":42,"referenced_works":["https://openalex.org/W38257615","https://openalex.org/W1149960754","https://openalex.org/W1536119593","https://openalex.org/W1954658694","https://openalex.org/W1966324811","https://openalex.org/W1972663160","https://openalex.org/W1973407183","https://openalex.org/W1982205631","https://openalex.org/W1994316441","https://openalex.org/W2015627422","https://openalex.org/W2023541076","https://openalex.org/W2026352419","https://openalex.org/W2036853599","https://openalex.org/W2064446724","https://openalex.org/W2067313328","https://openalex.org/W2067635581","https://openalex.org/W2069411275","https://openalex.org/W2079573490","https://openalex.org/W2089672258","https://openalex.org/W2095407217","https://openalex.org/W2100579514","https://openalex.org/W2113578526","https://openalex.org/W2124861237","https://openalex.org/W2135947393","https://openalex.org/W2140311411","https://openalex.org/W2143798346","https://openalex.org/W2144344516","https://openalex.org/W2146558186","https://openalex.org/W2147654959","https://openalex.org/W2153185479","https://openalex.org/W2162726111","https://openalex.org/W2176890627","https://openalex.org/W2337228275","https://openalex.org/W2488840986","https://openalex.org/W2528111042","https://openalex.org/W2581189719","https://openalex.org/W2592439040","https://openalex.org/W2617074614","https://openalex.org/W2620106252","https://openalex.org/W2766807579","https://openalex.org/W4242869840","https://openalex.org/W4312650633"],"related_works":["https://openalex.org/W2378016289","https://openalex.org/W2890419659","https://openalex.org/W2787898679","https://openalex.org/W2601539487","https://openalex.org/W2021715972","https://openalex.org/W4245302940","https://openalex.org/W2798404616","https://openalex.org/W3013258932","https://openalex.org/W2767612671","https://openalex.org/W2174814320"],"abstract_inverted_index":{"If-conversion":[0],"is":[1,34],"a":[2,14,20,52,99,127,141,148,154],"fundamental":[3],"technique":[4],"for":[5,9,29],"vectorization.":[6],"It":[7],"accounts":[8],"the":[10,133],"fact":[11],"that":[12,58],"in":[13,98,126,138],"SIMD":[15,43,166],"program,":[16],"several":[17,60],"targets":[18],"of":[19,26,62,123,135,143,171],"branch":[21],"might":[22],"be":[23,96],"executed":[24],"because":[25],"divergence.":[27],"Especially":[28],"irregular":[30,144],"data-parallel":[31,108],"workloads,":[32],"it":[33,71],"crucial":[35],"to":[36,41,68,106,173],"avoid":[37],"if-converting":[38],"non-divergent":[39,77],"branches":[40,78],"increase":[42],"utilization.":[44],"In":[45,66],"this":[46],"paper,":[47],"we":[48,116],"present":[49],"partial":[50,124],"linearization,":[51],"simple":[53],"and":[54,81,152,163,168,179],"efficient":[55],"if-conversion":[56,64],"algorithm":[57,94,137],"overcomes":[59],"limitations":[61],"existing":[63],"techniques.":[65],"contrast":[67],"prior":[69,118],"work,":[70],"has":[72],"provable":[73],"guarantees":[74],"on":[75,121,140,160],"which":[76],"are":[79],"retained":[80],"will":[82],"never":[83],"duplicate":[84],"code":[85],"or":[86,113],"insert":[87],"additional":[88],"branches.":[89],"We":[90,131],"show":[91],"how":[92],"our":[93,136],"can":[95],"used":[97],"classic":[100],"loop":[101],"vectorizer":[102,119],"as":[103,105,111],"well":[104],"implement":[107,117],"languages":[109],"such":[110],"ISPC":[112],"OpenCL.":[114],"Furthermore,":[115],"optimizations":[120],"top":[122],"linearization":[125],"more":[128],"general":[129],"way.":[130],"evaluate":[132],"implementation":[134],"LLVM":[139],"range":[142],"data":[145],"analytics":[146],"kernels,":[147],"neutronics":[149],"simulation":[150],"benchmark":[151,157],"NAB,":[153],"molecular":[155],"dynamics":[156],"from":[158],"SPEC2017":[159],"AVX2,":[161],"AVX512,":[162],"ARM":[164],"Advanced":[165],"machines":[167],"report":[169],"speedups":[170],"up":[172],"146":[174],"%":[175],"over":[176],"ICC,":[177],"GCC":[178],"Clang":[180],"O3.":[181]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":5},{"year":2020,"cited_by_count":4},{"year":2019,"cited_by_count":7},{"year":2018,"cited_by_count":3}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
