I was checking on the Intel compiler suite. There is a sophisticated profiler that allows the user to use the profile information to dynamically update the code (eg. Profile Guided Optimizations). In addition there is a code coverage tool that provides a visual presentation such as the execution count of a basic block. Note that a "basic block" is a small number of instructions with a single entry and exit point. I suggest that you download the compiler user manual from: http://www.intel.com/support/performancetools/c/linux/sb/CS-007729.htm#v8_us... I think you will find that the Intel compiler and tools may meet or come close to your needs. However, it is a commercial product. -- Jerry Feldman <gaf@blu.org> Boston Linux and Unix user group http://www.blu.org PGP key id:C5061EA9 PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9