Procedural Abstraction with Reverse Prefix Trees
For memory constrained environments like embedded systems, optimization for size is often as important as, if not more important than, optimization for execution speed. A common technique for compacting code is procedural abstraction. Equivalent code fragments are identified and abstracted into a pr...
Saved in:
| Published in: | Code Generation and Optimization, Proceedings pp. 243 - 253 |
|---|---|
| Main Authors: | , |
| Format: | Conference Proceeding |
| Language: | English |
| Published: |
Washington, DC, USA
IEEE Computer Society
22.03.2009
IEEE |
| Series: | ACM Conferences |
| Subjects: | |
| ISBN: | 9780769535760, 0769535763 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | For memory constrained environments like embedded systems, optimization for size is often as important as, if not more important than, optimization for execution speed. A common technique for compacting code is procedural abstraction. Equivalent code fragments are identified and abstracted into a procedure. The standard algorithm for identifying these fragments is based on suffix trees. We propose in this paper the calculation of suffix trees over the program text not in the common top-down fashion, but reversed, i.e. bottom-up. With this simple modification, not only equivalent fragments can be identified, but also fragments equivalent to (possibly often differently long) suffixes of the longest fragments. A longest fragment is then abstracted, and all fragments are replaced by procedure calls to their corresponding start instruction somewhere in the abstracted procedure. This allows us to harvest more and longer fragments than with standard suffix trees, improving code size reductions on average by 8.277% over standard suffix trees. |
|---|---|
| AbstractList | For memory constrained environments like embedded systems, optimization for size is often as important as, if not more important than, optimization for execution speed. A common technique for compacting code is procedural abstraction. Equivalent code fragments are identified and abstracted into a procedure. The standard algorithm for identifying these fragments is based on suffix trees. We propose in this paper the calculation of suffix trees over the program text not in the common top-down fashion, but reversed, i.e. bottom-up. With this simple modification, not only equivalent fragments can be identified, but also fragments equivalent to (possibly often differently long) suffixes of the longest fragments. A longest fragment is then abstracted, and all fragments are replaced by procedure calls to their corresponding start instruction somewhere in the abstracted procedure. This allows us to harvest more and longer fragments than with standard suffix trees, improving code size reductions on average by 8.277% over standard suffix trees. |
| Author | Schaeckeler, Stefan Shang, Weijia |
| Author_xml | – sequence: 1 givenname: Stefan surname: Schaeckeler fullname: Schaeckeler, Stefan – sequence: 2 givenname: Weijia surname: Shang fullname: Shang, Weijia |
| BookMark | eNqNkE1LAzEQhgNa0NY9efSyB0_CrvnY2STHsmgVCi1SzyFJZ3G13ZVk_fr3ptQf4MAwA8_LwDxTctoPPRJyyWjJGNW3zWJVckp1yeGEZFoqKmsNAmRNJ2SaiNIVrxQ_I1mMrzQVgKKCnRO6DoPH7Uewu3zu4hisH7uhz7-68SV_wk8MEfN1wLb7zjcBMV6QSWt3EbO_OSPP93eb5qFYrhaPzXxZWAbVWAiPEtLqWrTIrFXAD-3A1cJ6BOkpIhNcy0oAag7It1JQJ4QVSmkpZuTqeLdDRPMeur0NP6bS6bNaJXp9pNbvjRuGt2gYNQcXJrkwBxeGQ4rd_CNmXOiwFb9vmVyv |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/CGO.2009.25 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) - NZ IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) - NZ url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| EndPage | 253 |
| ExternalDocumentID | 4907668 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IF 6IK 6IL 6IN AAJGR AARBI ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IERZE OCL RIB RIC RIE RIL AAWTH LHSKQ |
| ID | FETCH-LOGICAL-a154t-3ce75a15bfeae1aa852a852b5b63ace57c0ee13297435e925e2d730b33a388973 |
| IEDL.DBID | RIE |
| ISBN | 9780769535760 0769535763 |
| IngestDate | Wed Aug 27 01:41:58 EDT 2025 Wed Jan 31 06:49:08 EST 2024 Wed Jan 31 06:50:21 EST 2024 |
| IsPeerReviewed | false |
| IsScholarly | false |
| Keywords | code compaction reverse prefix tree embedded systems suffix tree post-pass optimization program visualization code size reduction procedural abstraction |
| LCCN | 2008942482 |
| Language | English |
| LinkModel | DirectLink |
| MeetingName | CGO '09: 7th Annual IEEE/ ACM International Symposium on Code Generation and Optimization |
| MergedId | FETCHMERGED-LOGICAL-a154t-3ce75a15bfeae1aa852a852b5b63ace57c0ee13297435e925e2d730b33a388973 |
| PageCount | 11 |
| ParticipantIDs | acm_books_10_1109_CGO_2009_25 acm_books_10_1109_CGO_2009_25_brief ieee_primary_4907668 |
| PublicationCentury | 2000 |
| PublicationDate | 20090322 2009-March |
| PublicationDateYYYYMMDD | 2009-03-22 2009-03-01 |
| PublicationDate_xml | – month: 03 year: 2009 text: 20090322 day: 22 |
| PublicationDecade | 2000 |
| PublicationPlace | Washington, DC, USA |
| PublicationPlace_xml | – name: Washington, DC, USA |
| PublicationSeriesTitle | ACM Conferences |
| PublicationTitle | Code Generation and Optimization, Proceedings |
| PublicationTitleAbbrev | CGO |
| PublicationYear | 2009 |
| Publisher | IEEE Computer Society IEEE |
| Publisher_xml | – name: IEEE Computer Society – name: IEEE |
| SSID | ssj0000558031 |
| Score | 1.4180611 |
| Snippet | For memory constrained environments like embedded systems, optimization for size is often as important as, if not more important than, optimization for... |
| SourceID | ieee acm |
| SourceType | Publisher |
| StartPage | 243 |
| SubjectTerms | Assembly code compaction code size reduction Code standards Compaction Constraint optimization Costs Embedded computing Embedded system embedded systems Personal digital assistants post-pass optimization procedural abstraction program visualization Random access memory reverse prefix tree Software and its engineering -- Software notations and tools -- Compilers Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Procedures, functions and subroutines suffix tree Visualization |
| Title | Procedural Abstraction with Reverse Prefix Trees |
| URI | https://ieeexplore.ieee.org/document/4907668 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PS8MwFH5sw4MnlU2cOino0bo0adrkKMPpaQ6ZsFtJk1fYwSn7If75vqR1IojgoZAmFMprmrzv5X3vA7jiZUXzRCQxF-jiVHIXE7JlBFWYzWVKwDl1QWwin0zUfK6nLbjecWEQMSSf4Y1vhrN892q3PlQ2TAnJZZlqQzvPs5qrtYunMCkVTdAamWspyI8WTYGdr3vW8PMSpoej-8e6WKXXyG4b-_JDXSVsLuOD_73WIfS-WXrRdLf_HEELl11gocf5YhrRbenjGIG4EPl4a_SEPgnDP4XV4iOarRDXPXge381GD3GjihAbcnc2sbCYS2qWFRpMjFGS-6uUZSaMRZlbhujl48k3kKi5RO7oNy6FMEIpnYtj6Cxfl3gCkVOZSawjRIecFkxh0GWVsCp1LK24xj4MyDKFd_fXRUALTBdkOa9dqQsu-3D553hREtyv-tD1Nive6vIZRWOu09-7z2C_PrDxaV7n0NmstjiAPfu-WaxXF-GbfwL22aSQ |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LSwMxEB7aKuhJpRWrVhf06No0j30cpVgr1lqkQm8hm8xCD7bSh_jzTbJrRRDBw0I2YWGZzSbzTeabD-CSZrmdJ6wTUoYm5IKa0CJbYqEK0bHgFjhz48Um4uEwmUzSUQWuNlwYRPTJZ3jtmv4s38z12oXK2twiuShKqrAlOKekYGttIipEiMRO0QKbp4JZT5qVJXa-7knJ0OuQtN29eyrKVTqV7KrSrz_0Vfz20tv734vtQ-ObpxeMNjvQAVRwVgfie4wrpxHcZC6S4akLgYu4Bs_o0jDcU5hPP4LxAnHZgJfe7bjbD0tdhFBZh2cVMo2xsM0sR4UdpRJB3ZWJLGJKo4g1QXQC8tY7EJhSgdTYHzljTLEkSWN2CLXZfIZHEJgkUh1tLKZDapdMptBEOdMJN4TnNMUmtKxlpHP4l9LjBZJKazmnXplKKppw8ee4zCzgz5tQdzaTb0UBDVma6_j37nPY6Y8fB3JwP3w4gd3i-MYlfZ1CbbVYYwu29ftqulyc-e__CbwUp9c |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Code+Generation+and+Optimization%2C+Proceedings&rft.atitle=Procedural+Abstraction+with+Reverse+Prefix+Trees&rft.au=Schaeckeler%2C+S.&rft.au=Shang%2C+W.&rft.date=2009-03-01&rft.pub=IEEE&rft.isbn=9780769535760&rft.spage=243&rft.epage=253&rft_id=info:doi/10.1109%2FCGO.2009.25&rft.externalDocID=4907668 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769535760/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769535760/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769535760/sc.gif&client=summon&freeimage=true |

