Interprocedural analysis and optimization software

You can specify interprocedural analysis on the compilation step only or on both compilation and link steps in whole program mode. The present invention is directed to a new framework for interprocedural analysis and optimization of programs that support dynamic class andor method loading e. Issues in interprocedural analysis 386 interprocedural analysis. Interprocedural analysis and the verification of concurrent programs by akash lal a dissertation submitted in partial ful. The impact of interprocedural analysis and optimization on the design of a software. Many methods of interprocedural analysis sacrice precision for scalability while. The impact of interprocedural analysis and optimization in. Here an advanced compiler based on interprocedural. Procedure integration stephen richardson and mahadevan ganapathi center for integrated. Bringing profile information to the tree optimization framework. Interprocedural data flow analysis in soot using value.

Standard compiler optimization is no longer sufficient for competitive high performance computing. The impact of interprocedural analysis and optimization on. However, approximations render analyses less useful and, even with approximations, most analyses still cannot scale to large software. Building upon previous work, an algorithm for interprocedural data flow analysis has been implemented. Concurrent interprocedural data ow analysis by di zou thesis submitted to the. Ipo differs from other compiler optimization because it analyzes the entire program. Interprocedural dataflow analysis in the presence of large libraries. The impact of interprocedural analysis and optimization in the r. Interprocedural modification side effect analysis with. Interprocedural analysis ipa enables the compiler to optimize across. Interprocedural slicing using dependence graphs semantic. Separate compilation, the practice of compiling small subsets of a program independently, limits the compilers ability to build a call graph and to perform interprocedural analysis and optimization. Interprocedural control flow analysis of firstorder. A schema for interprocedural modification sideeffect.

The ideas presented here are from a paper called two approaches to interprocedural analysis, by micha sharir and amir pnueli, in a book called program flow analysis, theory and applications edited by s. Gather information across multiple procedures typically across the entire. On the one hand, the advent of multicore processors is pushing software towards becoming more concurrent. Some compilers build partial call graphs for all of the procedures in a compilation unit and perform analysis and optimization across that set. Intraprocedural analysis is a mechanism for performing optimization for each function within a compilation unit, using only the information available for that function. Cs 380c lecture 22 5 interprocedural analysis why dont many compilers use ip analysis. For software built with reusable components, the traditional. The first problem that the compiler must address in interprocedural analysis is the.

We also created a tool named webssari web application security by static analysis and runtime inspection to test our algorithm, and used it to verify 230 opensource web application projects on. Introduction programdependence information is useful for a variety of applications, such as software. Interprocedural analysis ipa enables the compiler to optimize across different files wholeprogram analysis, and it can result in significant performance improvements. Citeseerx document details isaac councill, lee giles, pradeep teregowda.

Interprocedural analysis is a mechanism for performing optimization across function boundaries. Interprocedural optimization ipo is a collection of compiler techniques used in computer. The impact of interprocedural analysis and optimization on the design of a software dev elopment environment. Here we discuss interprocedural analysis ipa or whole program analysis, its costs and. March 4, 2015 interprocedural analysis 5 interprocedural analysis vs. Cs553 lecture interprocedural analysis 5 interprocedural analysis vs. For the love of physics walter lewin may 16, 2011 duration. Improving gccs interprocedural optimization infrastructure. Information processing letters 32 1989 7142 northholland interprocedural analysis vs. Program analysis researchers tackle the problem typically by developing approximations, trading off analysis capability for scalability. In the modern world, not only is software getting larger and more complex, it is also becoming pervasive in our daily lives. Computers and internet algorithms analysis compilers software. There has been much interest lately in the use of such information for program parallelization and software understanding. The problem of tracking data flow across procedure boundaries has a long history of theoretical study by people who believed that such information would be useful for code optimization.

A slice of a program is taken with respect to a program point p and a variable x. Home conferences slipe proceedings slipe 85 the impact of interprocedural analysis and optimization on the design of a software development environment. Is inlining an alternative, or is it part of ip analysis and. Interprocedural analysis an overview sciencedirect topics. For the r environment to be effective as a tool for research in the construction of optimizing compilers, it must also be successful as a programming support tool. The notion of a program slice, originally introduced by mark weiser, is useful in program debugging, automatic parallelization, and program integration. Interprocedural dataflow analysis has a large number of uses for software optimization, maintenance, testing, and verification. For programs that exclusively use synchronous function calls, interprocedural data. Interprocedural analysis ipa can analyze and optimize your application as a whole, rather than on a filebyfile basis. Interprocedural analysis and optimization of an object. Program analyses for bloat detection and optimization. Using interprocedural analysis ibm knowledge center.

Interprocedural control dependence, interprocedural analysis, semantic dependence, program slicing, software maintenance 1. Interprocedural analysis useless for code optimization. Run during the link step of an application build, the entire application, including linked. Interprocedural analysis and optimization, dataflow. Interprocedural optimization interprocedural analysis gather information across multiple procedures typically across the entire. Interprocedural analysis gathering information about the whole program instead of a single procedure interprocedural optimization program transformation that involves more than one procedure in the. The optimizing translator performs interprocedural analysis, but only within a compilation unit. If there is a call to another routine that occurs within a loop, ipo analysis may. Citeseerx citation query interprocedural data flow analysis. Tailcall optimization is a valuable tool that converts tail recursion to a form. Introduction scalable program analyses work by exploiting the modular structure of programs. The impact of interprocedural analysis and optimization on the.

Interprocedural optimization ipo is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length. The impact of interprocedural analysis and optimization on the design of a software development environment article pdf available in acm sigplan notices 207. A schema for interprocedural modification sideeffect analysis with pointer aliasing. Whenev er the optimizing compiler needs informa tion about possible side effects of a particular procedure, it can simply e xtract the. Interprocedural analysis that is performed by the ipa compiler option improves on the limited interprocedural analysis described above. Interprocedural analysis gathering information about the whole program instead of a single procedure interprocedural optimization program transformation that involves more than one procedure in the program uses interprocedural analysis tuesday, may 4, 2010. One of the primary goals of the ir n programming environment project is to mount a concerted attack on the problems of performing interprocedural analysis and optimization in a compiler. The development, optimization and maintenance of these program systems consumes a lot of resources as time, manpower and of course money. If interprocedural analysis ipa can determine that the call to sub does not alter gv, the address calculation inside the loop can be significantly optimized. This has resulted in the development of algorithms for interprocedural analysis of the side effects of a subroutine, which summarize the body of a subroutine, producing approximate information to improve. Few commercial optimizing compilers employ interprocedural techniques because the cost of gathering the requisite information in a traditional compiler is too great. The paper focuses on its use in compiler optimization for register elimination and inline substitution. Interprocedural optimization ipo is an automatic, multistep process that allows the compiler to analyze your code to determine where you can benefit from specific optimizations. We have implemented this algorithm on top of the blast interprocedural reachability analysis which is a lazy version of the summarybased.

The information and subsequent analysis may then be used to reduce the recompilation required in program maintenance. Citeseerx interprocedural dataflow analysis in the. Framework for interprocedural analysis and optimizations. T1 interprocedural control flow analysis of firstorder programs with tailcall optimization. Interprocedural dataflow analysis is useful in compiler optimization, automatic vectorization and parallelization, dataflow anomaly detection, and software maintenance applications such as program revalidation, and software.

710 163 1418 1087 1011 261 373 659 353 592 1402 1068 1390 1121 769 1222 145 930 1116 409 758 359 1511 279 209 565 934 683 1325 113 1349 1251 334