Modeling Function Behavior for Optimization
Function call boundaries are among the major obstacles for optimizations and analysis, mainly due to the compiler’s lack of precise understanding of the behavior of the calls. In the presence of a call to an opaque function, the compiler has to make the most conservative assumptions on program state changes which the function call may cause.
The alternative solution for the compiler to understand the eﬀects of function calls is to provide precise descriptions of library function call’s external behaviors. This project aims to develop a basic set of function call characteristics which are related to memory dependency and pointer aliasing.
This document (call_side_effect.pdf) describes the proposed design and implementation ideas. There is no branch yet. If you are interested in working, you can contact David Li <firstname.lastname@example.org> or Diego Novillo <email@example.com>. We are planning to have an informal BoF at the 2008 GCC Summit.
The following are some pointers to design discussions: