ccache is a tool designed to reduce the amount of time taken by compilation when you recompile the same code repeatedly. ccache records the hash of the source code, preprocessor output, compiler command line, compiler size and modification time, stderr output, and more. By comparing these hashes with those of another invocation, ccache can use the previous output instead of recompiling from scratch.
ccache reproduces all output, including warnings. It is very useful for cvs builds, among other things.
More information can be found at http://ccache.samba.org/