{"id":"https://openalex.org/W4411260251","doi":"https://doi.org/10.1145/3729266","title":"Link-Time Optimization of Dynamic Casts in C++ Programs","display_name":"Link-Time Optimization of Dynamic Casts in C++ Programs","publication_year":2025,"publication_date":"2025-06-10","ids":{"openalex":"https://openalex.org/W4411260251","doi":"https://doi.org/10.1145/3729266"},"language":"en","primary_location":{"id":"doi:10.1145/3729266","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729266","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3729266","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://dl.acm.org/doi/pdf/10.1145/3729266","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5118137566","display_name":"Xufan Lu","orcid":null},"institutions":[{"id":"https://openalex.org/I121345201","display_name":"Instituto de Engenharia de Sistemas e Computadores Investiga\u00e7\u00e3o e Desenvolvimento","ror":"https://ror.org/04mqy3p58","country_code":"PT","type":"nonprofit","lineage":["https://openalex.org/I121345201","https://openalex.org/I4210125590"]},{"id":"https://openalex.org/I141596103","display_name":"University of Lisbon","ror":"https://ror.org/01c27hj86","country_code":"PT","type":"education","lineage":["https://openalex.org/I141596103"]},{"id":"https://openalex.org/I203847022","display_name":"Instituto Polit\u00e9cnico de Lisboa","ror":"https://ror.org/04ea70f07","country_code":"PT","type":"education","lineage":["https://openalex.org/I203847022"]}],"countries":["PT"],"is_corresponding":false,"raw_author_name":"Xufan Lu","raw_affiliation_strings":["INESC-ID, Lisboa, Portugal","Instituto Superior T\u00e9cnico - University of Lisbon, Lisboa, Portugal"],"raw_orcid":"https://orcid.org/0009-0008-5511-9099","affiliations":[{"raw_affiliation_string":"INESC-ID, Lisboa, Portugal","institution_ids":["https://openalex.org/I121345201"]},{"raw_affiliation_string":"Instituto Superior T\u00e9cnico - University of Lisbon, Lisboa, Portugal","institution_ids":["https://openalex.org/I141596103","https://openalex.org/I203847022"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5088560717","display_name":"Nuno P. Lopes","orcid":"https://orcid.org/0000-0002-3160-1672"},"institutions":[{"id":"https://openalex.org/I121345201","display_name":"Instituto de Engenharia de Sistemas e Computadores Investiga\u00e7\u00e3o e Desenvolvimento","ror":"https://ror.org/04mqy3p58","country_code":"PT","type":"nonprofit","lineage":["https://openalex.org/I121345201","https://openalex.org/I4210125590"]},{"id":"https://openalex.org/I141596103","display_name":"University of Lisbon","ror":"https://ror.org/01c27hj86","country_code":"PT","type":"education","lineage":["https://openalex.org/I141596103"]},{"id":"https://openalex.org/I203847022","display_name":"Instituto Polit\u00e9cnico de Lisboa","ror":"https://ror.org/04ea70f07","country_code":"PT","type":"education","lineage":["https://openalex.org/I203847022"]}],"countries":["PT"],"is_corresponding":false,"raw_author_name":"Nuno P. Lopes","raw_affiliation_strings":["INESC-ID, Lisboa, Portugal","Instituto Superior T\u00e9cnico - University of Lisbon, Lisboa, Portugal"],"raw_orcid":"https://orcid.org/0000-0002-3160-1672","affiliations":[{"raw_affiliation_string":"INESC-ID, Lisboa, Portugal","institution_ids":["https://openalex.org/I121345201"]},{"raw_affiliation_string":"Instituto Superior T\u00e9cnico - University of Lisbon, Lisboa, Portugal","institution_ids":["https://openalex.org/I141596103","https://openalex.org/I203847022"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.0988,"has_fulltext":true,"cited_by_count":1,"citation_normalized_percentile":{"value":0.8310346,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":91,"max":95},"biblio":{"volume":"9","issue":"PLDI","first_page":"503","last_page":"526"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9993000030517578,"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"}},"topics":[{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9993000030517578,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9901000261306763,"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.9821000099182129,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.4937468469142914}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.4937468469142914}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3729266","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729266","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3729266","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/3729266","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3729266","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3729266","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":[{"id":"https://openalex.org/G1740015287","display_name":null,"funder_award_id":"10.54499/UIDB/50021/2020","funder_id":"https://openalex.org/F4320334779","funder_display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia"},{"id":"https://openalex.org/G2441341484","display_name":"Instituto de Engenharia de Sistemas e Computadores, Investiga\u00e7\u00e3o e Desenvolvimento em Lisboa","funder_award_id":"UIDB/50021/2020","funder_id":"https://openalex.org/F4320334779","funder_display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia"},{"id":"https://openalex.org/G3019180854","display_name":null,"funder_award_id":"DOI: 10.54499/UIDB/50021/2020","funder_id":"https://openalex.org/F4320334779","funder_display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia"},{"id":"https://openalex.org/G6997658380","display_name":null,"funder_award_id":"10.54499","funder_id":"https://openalex.org/F4320334779","funder_display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia"}],"funders":[{"id":"https://openalex.org/F4320334779","display_name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia","ror":"https://ror.org/00snfqn58"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4411260251.pdf","grobid_xml":"https://content.openalex.org/works/W4411260251.grobid-xml"},"referenced_works_count":66,"referenced_works":["https://openalex.org/W1538332098","https://openalex.org/W1565533087","https://openalex.org/W1566774227","https://openalex.org/W1637758212","https://openalex.org/W1774577175","https://openalex.org/W1884981359","https://openalex.org/W1968131528","https://openalex.org/W1978818681","https://openalex.org/W1984303163","https://openalex.org/W1987898580","https://openalex.org/W1990465482","https://openalex.org/W1993318777","https://openalex.org/W1996146601","https://openalex.org/W2006966804","https://openalex.org/W2009152634","https://openalex.org/W2021085621","https://openalex.org/W2022413220","https://openalex.org/W2043382766","https://openalex.org/W2044439539","https://openalex.org/W2051527230","https://openalex.org/W2051600169","https://openalex.org/W2057510141","https://openalex.org/W2060481237","https://openalex.org/W2060789440","https://openalex.org/W2086839628","https://openalex.org/W2093334386","https://openalex.org/W2095390121","https://openalex.org/W2098806455","https://openalex.org/W2102440514","https://openalex.org/W2102890180","https://openalex.org/W2104512898","https://openalex.org/W2109219878","https://openalex.org/W2137857582","https://openalex.org/W2148755014","https://openalex.org/W2150364740","https://openalex.org/W2157896026","https://openalex.org/W2159185502","https://openalex.org/W2161044171","https://openalex.org/W2171240827","https://openalex.org/W2301548261","https://openalex.org/W2511015845","https://openalex.org/W2534135179","https://openalex.org/W2534285557","https://openalex.org/W2579099470","https://openalex.org/W2612168751","https://openalex.org/W2767161562","https://openalex.org/W2767180444","https://openalex.org/W2790728214","https://openalex.org/W2883931411","https://openalex.org/W2903417891","https://openalex.org/W2909660786","https://openalex.org/W2953561315","https://openalex.org/W2963934162","https://openalex.org/W2979756037","https://openalex.org/W3034382028","https://openalex.org/W3103543923","https://openalex.org/W3107218212","https://openalex.org/W3147999877","https://openalex.org/W3210645640","https://openalex.org/W4242680074","https://openalex.org/W4242827060","https://openalex.org/W4243113689","https://openalex.org/W4243446638","https://openalex.org/W4247444363","https://openalex.org/W4387781651","https://openalex.org/W4408750134"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W2390279801","https://openalex.org/W4391913857","https://openalex.org/W2358668433","https://openalex.org/W4396701345","https://openalex.org/W2376932109","https://openalex.org/W2001405890","https://openalex.org/W4396696052"],"abstract_inverted_index":{"A":[0,26],"core":[1],"design":[2],"principle":[3],"of":[4,21,213,223],"C++":[5],"is":[6,32,113],"that":[7,50,61],"users":[8],"should":[9],"only":[10],"incur":[11],"costs":[12],"for":[13,40,69,184],"features":[14],"they":[15],"actually":[16],"use,":[17],"both":[18,165],"in":[19,87,95,205],"terms":[20],"performance":[22,167],"and":[23,44,136,139,168,175,190],"code":[24],"size.":[25,88],"notable":[27],"exception":[28],"to":[29,103,114,143,151,163,198],"this":[30,81,126,155],"rule":[31],"the":[33,64,70,96,116,141,147,166,206],"run-time":[34,45],"type":[35,46,71,78,97],"information":[36],"(RTTI)":[37],"data,":[38],"used":[39],"dynamic":[41,90,137,173],"downcasts,":[42],"exceptions,":[43],"introspection.":[47],"For":[48],"classes":[49],"define":[51],"at":[52],"least":[53],"one":[54],"virtual":[55],"method,":[56],"compilers":[57],"generate":[58],"RTTI":[59,82,122,176,193,200],"data":[60,83,123,194],"uniquely":[62],"identifies":[63],"type,":[65],"including":[66],"a":[67,159],"string":[68],"name.":[72],"In":[73,154],"large":[74],"programs":[75,102],"with":[76,172,186],"complex":[77],"inheritance":[79],"hierarchies,":[80],"can":[84],"grow":[85],"substantially":[86],"Moreover,":[89],"casting":[91],"algorithms":[92],"are":[93],"linear":[94],"hierarchy":[98],"size,":[99],"causing":[100],"some":[101],"spend":[104],"considerable":[105],"time":[106],"on":[107],"these":[108],"casts.":[109],"The":[110],"common":[111],"workaround":[112],"use":[115],"-fno-rtti":[117],"compiler":[118],"flag,":[119],"which":[120],"disables":[121],"generation.":[124],"However,":[125],"approach":[127],"has":[128],"significant":[129],"drawbacks,":[130],"such":[131],"as":[132,215,217],"disabling":[133],"polymorphic":[134],"exceptions":[135],"casts,":[138],"requiring":[140],"flag":[142],"be":[144],"applied":[145],"across":[146],"entire":[148],"program":[149],"due":[150],"ABI":[152],"changes.":[153],"paper,":[156],"we":[157],"propose":[158],"new":[160],"link-time":[161],"optimization":[162,179],"mitigate":[164],"size":[169,221],"overhead":[170],"associated":[171],"casts":[174],"data.":[177],"Our":[178,202],"replaces":[180],"costly":[181],"library":[182],"calls":[183],"downcasts":[185],"short":[187],"instruction":[188],"sequences":[189],"eliminates":[191],"unnecessary":[192],"by":[195],"modifying":[196],"vtables":[197],"remove":[199],"slots.":[201],"prototype,":[203],"implemented":[204],"LLVM":[207],"compiler,":[208],"demonstrates":[209],"an":[210,218],"average":[211,219],"speedup":[212],"1.4%,":[214],"well":[216],"binary":[220],"reduction":[222],"1.7%.":[224]},"counts_by_year":[{"year":2025,"cited_by_count":1}],"updated_date":"2026-08-24T07:32:12.397491","created_date":"2025-10-10T00:00:00"}
