Demand-driven Alias Analysis Implementation Based on Open64
نویسنده
چکیده
In this paper, an implementation of a demand-driven alias analysis [7] in Open64 is presented. In the algorithm, a program expression graph is constructed based on all the expressions and assignments in the program, and the memory alias problem is formulated as a CFL-reachability problem. To deal with field accesses of structs which are common in multi-media applications, a field-sensitive extension of the original algorithm is also implemented. Currently, the field-sensitivity assumes ansi-compliant programs. By evaluating the implementation using some spec2000 programs, we found that the scalability of the original algorithm is not able to give enough precision in a reasonable compile time. To improve the scalability, a new one-level flow demand driven algorithm is developed, in which the hierarchical state machine is simplified by making machine M transitive while still keeping machine V non-transitive. The algorithm can achieve the same precision as Das’s algorithm [3], but uses a demand driven approach. Although the new one-level flow algorithm lost some of the precision for making machine M transitive, it can finish analysis of more queries for a given reasonable compile time and give more definite alias results. In other words, it can give better precision than the original algorithm and is more practical for product compiler. From experiment results, we can see that the algorithm can finish about half of the queries in a short compile time, and give much more “not aliased” results than the original algorithm.
منابع مشابه
Aggressive Program Analysis Framework for Static Error Checking in Open64
Nowadays error checking becomes more and more significant for constructing high reliable software. In this paper, we will introduce our work of integrating static error checking into Open64. We are devoting to construct an aggressive program analysis framework for error checking in the compiler. We integrate the intraprocedural analysis into interprocedural phase in order to do flowand contexts...
متن کاملThe OpenSHMEM Analyzer
The OpenSHMEM Analyzer is a compiler-based tool that can help users detect errors and provide useful analyses about their OpenSHMEM applications. The tool is built on top of the OpenUH compiler (a branch of Open64 compiler) and presents OpenSHMEM information as feedback to the user. Some of the analyses it provides include checks for correct usage of symmetric variables in OpenSHMEM calls, out-...
متن کاملSkeleton driven transformations for an OpenMP compiler
In this paper we present a technique based on code templates, oriented to source to source code transformations for OpenMP parallelization. Our goal is to provide an OpenMP compilation infrastructure that includes a reconfigurable code generation phase, targetting different OpenMP runtime systems or explore different translation strategies for OpenMP constructs. We describe the main OpenMP tran...
متن کاملBoomerang: Demand-Driven Flow- and Context-Sensitive Pointer Analysis for Java
Many current program analyses require highly precise pointer information about small, targeted parts of a given program. This motivates the need for demand-driven pointer analyses that compute information only where required. Pointer analyses generally compute points-to sets of program variables or answer boolean alias queries. However, many client analyses require richer pointer information. F...
متن کاملStrategies and Implementation for Translating OpenMP Code for Clusters
OpenMP is a portable shared memory programming interface that promises high programmer productivity for multithreaded applications. It is designed for small and middle sized shared memory systems. We have developed strategies to extend OpenMP to clusters via compiler translation to a Global Arrays program. In this paper, we describe our implementation of the translation in the Open64 compiler, ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009