A schema for interprocedural modification side-effect analysis with pointer aliasing

The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] alg...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:ACM transactions on programming languages and systems 2001-03, Vol.23 (2), p.105-186
Hauptverfasser: Ryder, Barbara G, Landi, William A, Stocks, Philip A, Zhang, Sean, Altucher, Rita
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 186
container_issue 2
container_start_page 105
container_title ACM transactions on programming languages and systems
container_volume 23
creator Ryder, Barbara G
Landi, William A
Stocks, Philip A
Zhang, Sean
Altucher, Rita
description The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These [MOD.sub.C] algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar [MOD.sub.C] algorithms: [MOD.sub.C](FSAlias) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; [MOD.sub.C](FIAlias) uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This first comparative implementation of [MOD.sub.C] analyses offers insight into the differences between flow-/context-sensitive and flow-/context-insensitive analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average [MOD.sub.C](FSAlias) for procedures and calls is in the range of 20% more precise than [MOD.sub.C](FIAlias); however, the performance was found to be at least an order of magnitude slower than [MOD.sub.C](FIAlias).
doi_str_mv 10.1145/383043.381532
format Article
fullrecord <record><control><sourceid>gale_proqu</sourceid><recordid>TN_cdi_proquest_miscellaneous_29024375</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><galeid>A79962875</galeid><sourcerecordid>A79962875</sourcerecordid><originalsourceid>FETCH-LOGICAL-c368t-fb943e22a463637721e6ea957233148fdcf3747d0353f743aca46281a5773553</originalsourceid><addsrcrecordid>eNp90U1LAzEQBuAgCtbq0Xvw4MnVJJNsdo-l-AUFL72HmJ20kd1NTbZI_73b1oMHkRwGwjPDMC8h15zdcy7VA1TAJNxDxRWIEzLhSlWFVDWckgnjpSxYLdQ5ucj5gzHGK1VNyHJGs1tjZ6mPiYZ-wLRJ0WGzTbalXWyCD84OIfY0hwYL9B7dQG1v210OmX6FYU038dBIbRtsDv3qkpx522a8-qlTsnx6XM5fisXb8-t8tigclNVQ-PdaAgphZQklaC04lmhrpQUAl5VvnActdcNAgdcSrBulqLhVWoNSMCW3x7Hjxp9bzIPpQnbYtrbHuM1G1ExI0Ht4c4Qr26IJvY9Dsm6PzUzX9TjzgO7-QCvscbxE7NGH8fs3L_7g42uwC-4f71LMOaE3mxQ6m3aGM7OPzxzjM8f44BtqU4rc</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>29024375</pqid></control><display><type>article</type><title>A schema for interprocedural modification side-effect analysis with pointer aliasing</title><source>ACM Digital Library Complete</source><creator>Ryder, Barbara G ; Landi, William A ; Stocks, Philip A ; Zhang, Sean ; Altucher, Rita</creator><creatorcontrib>Ryder, Barbara G ; Landi, William A ; Stocks, Philip A ; Zhang, Sean ; Altucher, Rita</creatorcontrib><description>The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These [MOD.sub.C] algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar [MOD.sub.C] algorithms: [MOD.sub.C](FSAlias) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; [MOD.sub.C](FIAlias) uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This first comparative implementation of [MOD.sub.C] analyses offers insight into the differences between flow-/context-sensitive and flow-/context-insensitive analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average [MOD.sub.C](FSAlias) for procedures and calls is in the range of 20% more precise than [MOD.sub.C](FIAlias); however, the performance was found to be at least an order of magnitude slower than [MOD.sub.C](FIAlias).</description><identifier>ISSN: 0164-0925</identifier><identifier>EISSN: 1558-4593</identifier><identifier>DOI: 10.1145/383043.381532</identifier><language>eng</language><publisher>Association for Computing Machinery, Inc</publisher><subject>Algorithms ; Analysis ; Compilers ; Compiling (Electronic computers) ; Coroutines ; Methods ; Parallel programming (Computer science) ; Software</subject><ispartof>ACM transactions on programming languages and systems, 2001-03, Vol.23 (2), p.105-186</ispartof><rights>COPYRIGHT 2001 Association for Computing Machinery, Inc.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c368t-fb943e22a463637721e6ea957233148fdcf3747d0353f743aca46281a5773553</citedby><cites>FETCH-LOGICAL-c368t-fb943e22a463637721e6ea957233148fdcf3747d0353f743aca46281a5773553</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Ryder, Barbara G</creatorcontrib><creatorcontrib>Landi, William A</creatorcontrib><creatorcontrib>Stocks, Philip A</creatorcontrib><creatorcontrib>Zhang, Sean</creatorcontrib><creatorcontrib>Altucher, Rita</creatorcontrib><title>A schema for interprocedural modification side-effect analysis with pointer aliasing</title><title>ACM transactions on programming languages and systems</title><description>The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These [MOD.sub.C] algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar [MOD.sub.C] algorithms: [MOD.sub.C](FSAlias) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; [MOD.sub.C](FIAlias) uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This first comparative implementation of [MOD.sub.C] analyses offers insight into the differences between flow-/context-sensitive and flow-/context-insensitive analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average [MOD.sub.C](FSAlias) for procedures and calls is in the range of 20% more precise than [MOD.sub.C](FIAlias); however, the performance was found to be at least an order of magnitude slower than [MOD.sub.C](FIAlias).</description><subject>Algorithms</subject><subject>Analysis</subject><subject>Compilers</subject><subject>Compiling (Electronic computers)</subject><subject>Coroutines</subject><subject>Methods</subject><subject>Parallel programming (Computer science)</subject><subject>Software</subject><issn>0164-0925</issn><issn>1558-4593</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2001</creationdate><recordtype>article</recordtype><recordid>eNp90U1LAzEQBuAgCtbq0Xvw4MnVJJNsdo-l-AUFL72HmJ20kd1NTbZI_73b1oMHkRwGwjPDMC8h15zdcy7VA1TAJNxDxRWIEzLhSlWFVDWckgnjpSxYLdQ5ucj5gzHGK1VNyHJGs1tjZ6mPiYZ-wLRJ0WGzTbalXWyCD84OIfY0hwYL9B7dQG1v210OmX6FYU038dBIbRtsDv3qkpx522a8-qlTsnx6XM5fisXb8-t8tigclNVQ-PdaAgphZQklaC04lmhrpQUAl5VvnActdcNAgdcSrBulqLhVWoNSMCW3x7Hjxp9bzIPpQnbYtrbHuM1G1ExI0Ht4c4Qr26IJvY9Dsm6PzUzX9TjzgO7-QCvscbxE7NGH8fs3L_7g42uwC-4f71LMOaE3mxQ6m3aGM7OPzxzjM8f44BtqU4rc</recordid><startdate>20010301</startdate><enddate>20010301</enddate><creator>Ryder, Barbara G</creator><creator>Landi, William A</creator><creator>Stocks, Philip A</creator><creator>Zhang, Sean</creator><creator>Altucher, Rita</creator><general>Association for Computing Machinery, Inc</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>20010301</creationdate><title>A schema for interprocedural modification side-effect analysis with pointer aliasing</title><author>Ryder, Barbara G ; Landi, William A ; Stocks, Philip A ; Zhang, Sean ; Altucher, Rita</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c368t-fb943e22a463637721e6ea957233148fdcf3747d0353f743aca46281a5773553</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2001</creationdate><topic>Algorithms</topic><topic>Analysis</topic><topic>Compilers</topic><topic>Compiling (Electronic computers)</topic><topic>Coroutines</topic><topic>Methods</topic><topic>Parallel programming (Computer science)</topic><topic>Software</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Ryder, Barbara G</creatorcontrib><creatorcontrib>Landi, William A</creatorcontrib><creatorcontrib>Stocks, Philip A</creatorcontrib><creatorcontrib>Zhang, Sean</creatorcontrib><creatorcontrib>Altucher, Rita</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>ACM transactions on programming languages and systems</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Ryder, Barbara G</au><au>Landi, William A</au><au>Stocks, Philip A</au><au>Zhang, Sean</au><au>Altucher, Rita</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>A schema for interprocedural modification side-effect analysis with pointer aliasing</atitle><jtitle>ACM transactions on programming languages and systems</jtitle><date>2001-03-01</date><risdate>2001</risdate><volume>23</volume><issue>2</issue><spage>105</spage><epage>186</epage><pages>105-186</pages><issn>0164-0925</issn><eissn>1558-4593</eissn><abstract>The first interprocedural modification side-effects analysis for C ([MOD.sub.C]) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of [MOD.sub.C] algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These [MOD.sub.C] algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar [MOD.sub.C] algorithms: [MOD.sub.C](FSAlias) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; [MOD.sub.C](FIAlias) uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This first comparative implementation of [MOD.sub.C] analyses offers insight into the differences between flow-/context-sensitive and flow-/context-insensitive analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average [MOD.sub.C](FSAlias) for procedures and calls is in the range of 20% more precise than [MOD.sub.C](FIAlias); however, the performance was found to be at least an order of magnitude slower than [MOD.sub.C](FIAlias).</abstract><pub>Association for Computing Machinery, Inc</pub><doi>10.1145/383043.381532</doi><tpages>82</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0164-0925
ispartof ACM transactions on programming languages and systems, 2001-03, Vol.23 (2), p.105-186
issn 0164-0925
1558-4593
language eng
recordid cdi_proquest_miscellaneous_29024375
source ACM Digital Library Complete
subjects Algorithms
Analysis
Compilers
Compiling (Electronic computers)
Coroutines
Methods
Parallel programming (Computer science)
Software
title A schema for interprocedural modification side-effect analysis with pointer aliasing
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-23T17%3A45%3A20IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-gale_proqu&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=A%20schema%20for%20interprocedural%20modification%20side-effect%20analysis%20with%20pointer%20aliasing&rft.jtitle=ACM%20transactions%20on%20programming%20languages%20and%20systems&rft.au=Ryder,%20Barbara%20G&rft.date=2001-03-01&rft.volume=23&rft.issue=2&rft.spage=105&rft.epage=186&rft.pages=105-186&rft.issn=0164-0925&rft.eissn=1558-4593&rft_id=info:doi/10.1145/383043.381532&rft_dat=%3Cgale_proqu%3EA79962875%3C/gale_proqu%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=29024375&rft_id=info:pmid/&rft_galeid=A79962875&rfr_iscdi=true