Affiliation:
1. Computer Systems Laboratory, Stanford University, Stanford, CA
Abstract
Program analyses used in compilers commonly use a transfer function (TF) to summarize the input/output behavior of a procedure or region, speeding convergence of analysis of the surrounding region or program. A partial transfer function (PTF) summarizes input/output behavior for only a subset of the possible inputs. In many cases, an exact characterization of input/output behavior is possible for the contexts occurring in a given program, even when a concise and exact total summary would not be feasible. In other cases, an approximate PTF can be used which, while not exact, is more precise than would be possible with a total approximation.
As demonstrated by prior work in a flow- and context-sensitive pointer alias analysis, PTFs are effective in speeding the convergence of program analysis involving higher-order functions and complex transfer functions that cannot easily be summarized.
This paper presents a formal definition of partial transfer functions and introduces a general framework that enables data flow systems with complex transfer functions to be decomposed into simpler partial transfer functions. This paper provides a foundation that will allow the further development of the PTF concept, as well as enabling application to many more program analyses.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Octopus
: Scaling Value-Flow Analysis via Parallel Collection of Realizable Path Conditions;ACM Transactions on Software Engineering and Methodology;2024-03-29
2. BigDataflow: A Distributed Interprocedural Dataflow Analysis Framework;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
3. Systemizing Interprocedural Static Analysis of Large-scale Systems Code with Graspan;ACM Transactions on Computer Systems;2021-07
4. Chianina: an evolving graph system for flow- and context-sensitive analyses of million lines of C code;Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation;2021-06-18
5. Precise Interprocedural Side-Effect Analysis;Theoretical Aspects of Computing – ICTAC 2014;2014