分享点到分析的艺术(扩展摘要)

Shashin Halalingaiah, Vijay Sundaresan, Daryl Maier, V. Krishna Nandivada
{"title":"分享点到分析的艺术(扩展摘要)","authors":"Shashin Halalingaiah, Vijay Sundaresan, Daryl Maier, V. Krishna Nandivada","doi":"arxiv-2409.09062","DOIUrl":null,"url":null,"abstract":"Data-flow analyses like points-to analysis can vastly improve the precision\nof other analyses, and help perform powerful code optimizations. However,\nwhole-program points-to analysis of large programs tend to be expensive - both\nin terms of time and memory. Consequently, many compilers (both static and JIT)\nand program-analysis tools tend to employ faster - but more conservative -\npoints-to analysis to improve usability. As an alternative to such trading of\nprecision for performance, various techniques have been proposed to perform\nprecise yet expensive fixed-point points-to analyses ahead of time in a static\nanalyzer, store the results, and then transmit them to independent\ncompilation/program-analysis stages that may need them. However, an underlying\nconcern of safety affects all such techniques - can a compiler (or program\nanalysis tool) trust the points-to analysis results generated by another\ncompiler/tool? In this work, we address this issue of trust, while keeping the issues of\nperformance efficiency in mind. We propose ART: Analysis-results Representation\nTemplate - a novel scheme to efficiently and concisely encode results of\nflow-sensitive, context-insensitive points-to analysis computed by a static\nanalyzer for use in any independent system that may benefit from such a highly\nprecise points-to analysis. Our scheme has two components: (i) a producer that\ncan statically perform expensive points-to analysis and encode the same\nconcisely. (ii) a consumer that, on receiving such encoded results, can\nregenerate the points-to analysis results encoded by the artwork if it is\ndeemed safe. We demonstrate the usage of ART by implementing a producer (in\nSoot) and two consumers (in Soot and the Eclipse OpenJ9 JIT compiler). We\nevaluate our implementation over various benchmarks from the DaCapo and\nSPECjvm2008 suites.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"199 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"The ART of Sharing Points-to Analysis (Extended Abstract)\",\"authors\":\"Shashin Halalingaiah, Vijay Sundaresan, Daryl Maier, V. Krishna Nandivada\",\"doi\":\"arxiv-2409.09062\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Data-flow analyses like points-to analysis can vastly improve the precision\\nof other analyses, and help perform powerful code optimizations. However,\\nwhole-program points-to analysis of large programs tend to be expensive - both\\nin terms of time and memory. Consequently, many compilers (both static and JIT)\\nand program-analysis tools tend to employ faster - but more conservative -\\npoints-to analysis to improve usability. As an alternative to such trading of\\nprecision for performance, various techniques have been proposed to perform\\nprecise yet expensive fixed-point points-to analyses ahead of time in a static\\nanalyzer, store the results, and then transmit them to independent\\ncompilation/program-analysis stages that may need them. However, an underlying\\nconcern of safety affects all such techniques - can a compiler (or program\\nanalysis tool) trust the points-to analysis results generated by another\\ncompiler/tool? In this work, we address this issue of trust, while keeping the issues of\\nperformance efficiency in mind. We propose ART: Analysis-results Representation\\nTemplate - a novel scheme to efficiently and concisely encode results of\\nflow-sensitive, context-insensitive points-to analysis computed by a static\\nanalyzer for use in any independent system that may benefit from such a highly\\nprecise points-to analysis. Our scheme has two components: (i) a producer that\\ncan statically perform expensive points-to analysis and encode the same\\nconcisely. (ii) a consumer that, on receiving such encoded results, can\\nregenerate the points-to analysis results encoded by the artwork if it is\\ndeemed safe. We demonstrate the usage of ART by implementing a producer (in\\nSoot) and two consumers (in Soot and the Eclipse OpenJ9 JIT compiler). We\\nevaluate our implementation over various benchmarks from the DaCapo and\\nSPECjvm2008 suites.\",\"PeriodicalId\":501197,\"journal\":{\"name\":\"arXiv - CS - Programming Languages\",\"volume\":\"199 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-09-03\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Programming Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2409.09062\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.09062","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

数据流分析(如点到分析)可以大大提高其他分析的精度,并有助于执行强大的代码优化。然而,对大型程序进行全程序点到点分析往往耗费大量时间和内存。因此,许多编译器(包括静态编译器和 JIT 编译器)和程序分析工具倾向于采用更快但更保守的点对点分析,以提高可用性。为了替代这种以精度换性能的做法,人们提出了各种技术,在静态分析器中提前执行精确但昂贵的定点到分析,存储结果,然后将其传输到可能需要它们的独立编译/程序分析阶段。然而,安全问题是影响所有此类技术的根本问题--编译器(或程序分析工具)能否信任另一个编译器/工具生成的点到分析结果?在这项工作中,我们在考虑性能效率问题的同时,解决了信任问题。我们提出了 ART:分析结果表示模板(Analysis-results RepresentationTemplate)--一种新颖的方案,用于高效、简洁地编码由静态分析器计算的低敏感、上下文不敏感的点对分析结果,供任何可能受益于这种高度精确的点对分析的独立系统使用。我们的方案由两部分组成(i) 生产者可以静态执行昂贵的点对分析,并对其进行精确编码。(ii) 消费者在接收到这种编码结果后,如果认为安全,可以生成艺术品编码的点对分析结果。我们通过实现一个生产者(在 Soot 中)和两个消费者(在 Soot 和 Eclipse OpenJ9 JIT 编译器中)来演示 ART 的用法。我们通过 DaCapo 和SPECjvm2008 套件中的各种基准对我们的实现进行了评估。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
The ART of Sharing Points-to Analysis (Extended Abstract)
Data-flow analyses like points-to analysis can vastly improve the precision of other analyses, and help perform powerful code optimizations. However, whole-program points-to analysis of large programs tend to be expensive - both in terms of time and memory. Consequently, many compilers (both static and JIT) and program-analysis tools tend to employ faster - but more conservative - points-to analysis to improve usability. As an alternative to such trading of precision for performance, various techniques have been proposed to perform precise yet expensive fixed-point points-to analyses ahead of time in a static analyzer, store the results, and then transmit them to independent compilation/program-analysis stages that may need them. However, an underlying concern of safety affects all such techniques - can a compiler (or program analysis tool) trust the points-to analysis results generated by another compiler/tool? In this work, we address this issue of trust, while keeping the issues of performance efficiency in mind. We propose ART: Analysis-results Representation Template - a novel scheme to efficiently and concisely encode results of flow-sensitive, context-insensitive points-to analysis computed by a static analyzer for use in any independent system that may benefit from such a highly precise points-to analysis. Our scheme has two components: (i) a producer that can statically perform expensive points-to analysis and encode the same concisely. (ii) a consumer that, on receiving such encoded results, can regenerate the points-to analysis results encoded by the artwork if it is deemed safe. We demonstrate the usage of ART by implementing a producer (in Soot) and two consumers (in Soot and the Eclipse OpenJ9 JIT compiler). We evaluate our implementation over various benchmarks from the DaCapo and SPECjvm2008 suites.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Memory Consistency and Program Transformations No Saved Kaleidosope: an 100% Jitted Neural Network Coding Language with Pythonic Syntax Towards Quantum Multiparty Session Types The Incredible Shrinking Context... in a decompiler near you Scheme Pearl: Quantum Continuations
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1