A compiler tool is provided to selectively solicit assistance from a
programmer in order to improve optimization of code compiled by the
compiler. As a program is being compiled, the compiler keeps track of the
places where it could do better if it only knew certain information. The
user is presented with one or more pieces of advice that each identify a
problem that prevented the compiler from making a particular optimization
due to not enough information and one or more suggestions as to how to
provide additional information to the compiler. This list is generally
filtered so that only a subset of missing information that has a high
likelihood of leading to better performance is presented. Other missing
information is not requested.