{"id":"https://openalex.org/W1965722902","doi":"https://doi.org/10.1145/1542452.1542461","title":"Eliminating the call stack to save RAM","display_name":"Eliminating the call stack to save RAM","publication_year":2009,"publication_date":"2009-06-19","ids":{"openalex":"https://openalex.org/W1965722902","doi":"https://doi.org/10.1145/1542452.1542461","mag":"1965722902"},"language":"en","primary_location":{"id":"doi:10.1145/1542452.1542461","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1542452.1542461","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems","raw_type":"proceedings-article"},"type":"conference-paper","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/A5061870286","display_name":"Xuejun Yang","orcid":"https://orcid.org/0000-0002-8595-545X"},"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":"Xuejun Yang","raw_affiliation_strings":["University of Utah, Salt Lake City, UT, USA","University of Utah, Salt Lake City, UT, USA#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Utah, Salt Lake City, UT, USA","institution_ids":["https://openalex.org/I223532165"]},{"raw_affiliation_string":"University of Utah, Salt Lake City, UT, USA#TAB#","institution_ids":["https://openalex.org/I223532165"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5055203922","display_name":"Nathan Cooprider","orcid":null},"institutions":[{"id":"https://openalex.org/I201377164","display_name":"BAE Systems (Sweden)","ror":"https://ror.org/00yewjk07","country_code":"SE","type":"company","lineage":["https://openalex.org/I201377164","https://openalex.org/I4210143731"]},{"id":"https://openalex.org/I4210117222","display_name":"BAE Systems (United States)","ror":"https://ror.org/02fctgp09","country_code":"US","type":"company","lineage":["https://openalex.org/I4210117222","https://openalex.org/I4210143731"]}],"countries":["SE","US"],"is_corresponding":false,"raw_author_name":"Nathan Cooprider","raw_affiliation_strings":["BAE Systems AIT, Burlington, MA, USA","BAE Systems AIT, Burlington, MA, USA#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"BAE Systems AIT, Burlington, MA, USA","institution_ids":["https://openalex.org/I4210117222"]},{"raw_affiliation_string":"BAE Systems AIT, Burlington, MA, USA#TAB#","institution_ids":["https://openalex.org/I201377164"]}]},{"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, UT, USA","University of Utah, Salt Lake City, UT, USA#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Utah, Salt Lake City, UT, USA","institution_ids":["https://openalex.org/I223532165"]},{"raw_affiliation_string":"University of Utah, Salt Lake City, UT, USA#TAB#","institution_ids":["https://openalex.org/I223532165"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":17,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"60","last_page":"69"},"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9995999932289124,"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/T11424","display_name":"Security and Verification in Computing","score":0.9994999766349792,"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/flattening","display_name":"Flattening","score":0.9159365892410278},{"id":"https://openalex.org/keywords/stack","display_name":"Stack (abstract data type)","score":0.7784466743469238},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7100865244865417},{"id":"https://openalex.org/keywords/call-stack","display_name":"Call stack","score":0.6409434080123901},{"id":"https://openalex.org/keywords/transformation","display_name":"Transformation (genetics)","score":0.5242785811424255},{"id":"https://openalex.org/keywords/microcontroller","display_name":"Microcontroller","score":0.5132967829704285},{"id":"https://openalex.org/keywords/scope","display_name":"Scope (computer science)","score":0.5041950941085815},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.4818069338798523},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.42412734031677246},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.40276622772216797},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.39475589990615845},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.34731829166412354},{"id":"https://openalex.org/keywords/engineering","display_name":"Engineering","score":0.14269641041755676}],"concepts":[{"id":"https://openalex.org/C19444555","wikidata":"https://www.wikidata.org/wiki/Q212750","display_name":"Flattening","level":2,"score":0.9159365892410278},{"id":"https://openalex.org/C9395851","wikidata":"https://www.wikidata.org/wiki/Q177929","display_name":"Stack (abstract data type)","level":2,"score":0.7784466743469238},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7100865244865417},{"id":"https://openalex.org/C119024030","wikidata":"https://www.wikidata.org/wiki/Q759899","display_name":"Call stack","level":3,"score":0.6409434080123901},{"id":"https://openalex.org/C204241405","wikidata":"https://www.wikidata.org/wiki/Q461499","display_name":"Transformation (genetics)","level":3,"score":0.5242785811424255},{"id":"https://openalex.org/C173018170","wikidata":"https://www.wikidata.org/wiki/Q165678","display_name":"Microcontroller","level":2,"score":0.5132967829704285},{"id":"https://openalex.org/C2778012447","wikidata":"https://www.wikidata.org/wiki/Q1034415","display_name":"Scope (computer science)","level":2,"score":0.5041950941085815},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.4818069338798523},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.42412734031677246},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.40276622772216797},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.39475589990615845},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.34731829166412354},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.14269641041755676},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","level":1,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C78519656","wikidata":"https://www.wikidata.org/wiki/Q101333","display_name":"Mechanical engineering","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/1542452.1542461","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1542452.1542461","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.216.8043","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.216.8043","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.cs.utah.edu/~regehr/papers/lctes062-yang.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":35,"referenced_works":["https://openalex.org/W196056621","https://openalex.org/W1492633406","https://openalex.org/W1560219748","https://openalex.org/W1580664042","https://openalex.org/W1583904488","https://openalex.org/W1586768026","https://openalex.org/W1907234304","https://openalex.org/W1971903460","https://openalex.org/W2010187097","https://openalex.org/W2015148901","https://openalex.org/W2032688435","https://openalex.org/W2035216234","https://openalex.org/W2085385727","https://openalex.org/W2085427809","https://openalex.org/W2101462267","https://openalex.org/W2101604935","https://openalex.org/W2107089133","https://openalex.org/W2109219878","https://openalex.org/W2121306113","https://openalex.org/W2121396408","https://openalex.org/W2127467423","https://openalex.org/W2131574356","https://openalex.org/W2133587157","https://openalex.org/W2135992106","https://openalex.org/W2140502341","https://openalex.org/W2141389113","https://openalex.org/W2146924294","https://openalex.org/W2147891197","https://openalex.org/W2152155870","https://openalex.org/W2157536063","https://openalex.org/W2247935070","https://openalex.org/W2787224882","https://openalex.org/W4210597212","https://openalex.org/W4252141333","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W2087972928","https://openalex.org/W3015514077","https://openalex.org/W4387686449","https://openalex.org/W1527172253","https://openalex.org/W1968278738","https://openalex.org/W3125263037","https://openalex.org/W2377497513","https://openalex.org/W1536721933","https://openalex.org/W2374908835","https://openalex.org/W394712460"],"abstract_inverted_index":{"Most":[0],"programming":[1,9],"languages":[2],"support":[3],"a":[4,43,47,87,95],"call":[5],"stack":[6,78],"in":[7,13,77,84],"the":[8,14,37,65],"model":[10],"and":[11,55],"also":[12],"runtime":[15,38],"system.We":[16],"show":[17],"that":[18,45,69,90],"for":[19],"applications":[20],"targeting":[21],"low-power":[22],"embedded":[23],"microcontrollers":[24],"(MCUs),":[25],"RAM":[26],"usage":[27],"can":[28],"be":[29],"significantly":[30],"decreased":[31],"by":[32],"partially":[33],"or":[34],"completely":[35],"eliminating":[36],"callstack.":[39],"We":[40],"present":[41],"flattening,":[42],"transformation":[44,89],"absorbs":[46],"function":[48,53],"into":[49,94],"its":[50],"caller,":[51],"replacing":[52],"invocations":[54],"returns":[56],"with":[57,86],"jumps.":[58],"Unlike":[59],"inlining,":[60],"flattening":[61,75],"does":[62],"not":[63],"duplicate":[64],"bodies":[66],"of":[67],"functions":[68],"have":[70],"multiple":[71],"callsites.":[72],"Applied":[73],"aggressively,":[74],"results":[76],"elimination.":[79],"Flattening":[80],"is":[81],"most":[82],"useful":[83],"conjunction":[85],"lifting":[88],"moves":[91],"global":[92],"variables":[93],"local":[96],"scope.":[97]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2016,"cited_by_count":1},{"year":2014,"cited_by_count":1},{"year":2013,"cited_by_count":3},{"year":2012,"cited_by_count":2}],"updated_date":"2026-07-14T23:27:15.235271","created_date":"2025-10-10T00:00:00"}
