The code is committed to the trunk.
You can cache shaders in d3d9, d3d11 and in opengl if you have the 4.1 driver (I don't

I didn't add this option to gles 2.0 - but it can be added by using GL_OES_get_program_binary, I guess there it can help the most - because it runs on platforms that compiles more slowly. I don't have the development environment to write the code for it.
The idea is to save a cache before you release the product or at the first run on the client computer - and from then on use the cache to load shaders without compiling them.
If you want to save shaders to the cache:
* Before the resource load call GpuProgramManager::getSingleton().setSaveMicrocodesToCache(true);
* When you want to save the cache to a file call - GpuProgramManager::getSingleton().saveMicrocodeCache(...);
When you want to use the cache:
* Before the resource load call - GpuProgramManager::getSingleton().loadMicrocodeCache(...);